طوّر بيئة لعب غامرة لألعاب Godot مع رسوم متحركة آسرة.

في تطوير اللعبة ، تلعب الرسوم المتحركة دورًا مهمًا في إنشاء تجربة جذابة وغامرة للاعبين. يمكن أن تؤدي إضافة الرسوم المتحركة ثنائية الأبعاد إلى لعبة Godot إلى إضفاء الحيوية على شخصياتك وبيئاتك ، مما يجعلها أكثر جاذبية وتفاعلية من الناحية المرئية.

لحسن الحظ ، يوفر Godot أدوات وميزات قوية لإنشاء الرسوم المتحركة ثنائية الأبعاد والتحكم فيها بسهولة.

إعداد لعبة جودو

للبدء ، قم بإعداد مشهد أساسي للعبة ثنائية الأبعاد بتنسيق محرك لعبة Godot. أنشئ مشهدًا جديدًا وأضف ملف الحركية عقدة كشخصية اللاعب. داخل الحركية، أضف تصادم بشكل مستطيل يمثل حدود تصادم اللاعب.

الكود المستخدم في هذه المقالة متوفر في هذا مستودع جيثب وهو مجاني لك لاستخدامه بموجب ترخيص MIT.

بالإضافة إلى ذلك ، أضف ملف الرسوم المتحركة عقدة للتعامل مع الرسوم المتحركة للاعب. علاوة على ذلك ، تأكد من تعيين إجراءات الإدخال التالية في ملف خريطة الإدخال:

بعد ذلك ، اكتب رمز GDScript للتحكم في حركة اللاعب. قم بإرفاق النص التالي بملف الحركية العقدة:

 يوسع KinematicBody2Dconst SPEED = 200func _physics_process (delta): var velocity = Vector2.ZERO if Input.is_action_pressed ("move_left"): velocity.x - = SPEED if المدخلات. تحرك و انزلاق (سرعة)
instagram viewer

يقوم هذا البرنامج النصي بإعداد سرعة ثابتة للاعب ويسمح له بالتحرك لليسار ولليمين ولأعلى ولأسفل باستخدام مفاتيح الأسهم أو WASD.

مضيفا SpriteSheet في AnimatedSprite

الآن ، قم بتكوين ملف الرسوم المتحركة لاستخدام ورقة الرموز المتحركة للرسوم المتحركة. حدد ملف الرسوم المتحركة العقدة وانتقل إلى ملف الإطارات في علامة تبويب خصائص العقدة. هنا ، انقر فوق ملف نيو سبرايت إطارات زر.

قم بالتبديل إلى ملف سبرايت علامة التبويب الموجودة في الجزء السفلي من محرر Godot. في ال سبرايت علامة التبويب ، انقر فوق الرسوم المتحركة الجديدة زر. إنشاء رسوم متحركة مثل يمشي و عاطل عن طريق إضافة الإطارات المناسبة لكل رسم متحرك.

بالإضافة إلى ذلك ، لديك خيار إنشاء رسوم متحركة أخرى ، مثل الرماية والقفز والتسلق لعبة منهاج. بعد ذلك ، انقر فوق أضف إطارات من SpriteSheet زر لاستخراج الإطارات الفردية تلقائيًا من ورقة الرموز المتحركة.

التحكم في الرسوم المتحركة باستخدام GDScript

الآن بعد أن تم إعداد الرسوم المتحركة الخاصة بك ، يمكنك التحكم فيها برمجيًا باستخدام GDScript.

تشغيل وإيقاف الرسوم المتحركة

يعد التحكم في تشغيل الرسوم المتحركة أمرًا ضروريًا لتوفير تجارب ديناميكية وتفاعلية في لعبتك. ال الرسوم المتحركة تقدم العقدة في Godot طرقًا للعب وإيقاف الرسوم المتحركة وفقًا لمنطق لعبتك.

تمديد الحركية العقدة والتعامل مع عنصر التحكم في الرسوم المتحركة داخل ملف _physics_process وظيفة. يمكنك استخدام ال play_animation و stop_animation المدخلات لتشغيل إجراءات الرسوم المتحركة المقابلة.

 يمتد KinematicBody2Dfunc _physics_process (دلتا): # تشغيل الرسوم المتحركة إذا كان Input.is_action_just_pressed ("play_animation"): $ AnimatedSprite.play () # أوقف الرسوم المتحركة وأعد ضبط الإطار الأول إذا كان Input.is_action_just_pressed ("stop_animation"): AnimatedSprite.stop () AnimatedSprite.frame $ = 0

من خلال تعيين إجراءات الإدخال المناسبة ، يمكنك تزويد اللاعبين بالتحكم في تشغيل الرسوم المتحركة في لعبتك.

على سبيل المثال ، يمكنك ربط ملف play_animation إجراء على الضغط على زر أو حدث معين في لعبتك ، مما يسمح للاعب بتشغيل تسلسل الرسوم المتحركة في اللحظة المطلوبة. بالإضافة إلى ذلك ، يمكنك ذلك العثور على موسيقى خالية من حقوق الطبع والنشر للعب أثناء تشغيل الرسوم المتحركة.

وبالمثل ، يمكنك تشغيل ملف stop_animation إجراءات لإيقاف الرسوم المتحركة تمامًا.

من خلال دمج آليات التحكم في الرسوم المتحركة هذه ، يمكنك إضافة العمق والتفاعل إلى الرسوم المتحركة للعبتك ، مما يخلق تجارب أكثر جاذبية وغامرة للاعبين.

تدوير الرسوم المتحركة

يمكن أن يؤدي تدوير الرسوم المتحركة إلى إضافة اهتمام بصري وتنوع إلى لعبتك. يمكنك تدوير ملف الرسوم المتحركة عقدة لتغيير اتجاه الرسم المتحرك. يمكنك تطبيق الاستدارة بالدرجات باستخدام استدارة() طريقة.

 يمتد KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed ("rotate_animation"): # قم بتدوير الرسم المتحرك بمقدار 45 درجة في اتجاه عقارب الساعة $ AnimatedSprite.rotate (deg2rad (45))

عندما تضغط على الأزرار المرتبطة بملف rotate_animation (يمكنك تحديد هذا الإجراء في خريطة الإدخال الخاصة بك) ، فإن استدارة() طريقة تسمى على الرسوم المتحركة العقدة. يقوم بتدوير العقدة بمقدار 45 درجة في اتجاه عقارب الساعة باستخدام deg2rad () لتحويل الدرجات إلى راديان.

ضع في اعتبارك أنه سيتم تطبيق التناوب على الكل الرسوم المتحركة العقدة ، بما في ذلك جميع إطارات الرسوم المتحركة. لذلك ، إذا كنت تريد تدوير إطارات معينة فقط ، فقد تحتاج إلى تقسيمها إلى إطارات منفصلة الرسوم المتحركة العقد أو استخدام تقنيات أخرى مثل قلب الإطارات الفردية.

تقليب الرسوم المتحركة

يمكن أن يكون قلب الرسم المتحرك أفقيًا أو رأسيًا مفيدًا لعكس التغييرات في اتجاه الشخصية. في Godot ، فإن الرسوم المتحركة توفر العقدة خصائص للتحكم في التقليب.

لقلب الرسم المتحرك أفقيًا ، اضبط ملف flip_h ممتلكات الرسوم المتحركة ل حقيقي. سيعكس هذا الرسم المتحرك على المحور الأفقي. وبالمثل ، فإن وضع ملف flip_v ملكية ل حقيقي سيعكس الرسوم المتحركة على طول المحور الرأسي.

 يمتد KinematicBody2Dfunc _physics_process (دلتا): إذا كان Input.is_action_just_pressed ("flip_animation"): AnimatedSprite.flip_h = true # أو $ AnimatedSprite.flip_v = صحيح للقلب الرأسي

إذا ضغط اللاعب على ملف flip_animation إدخال الإجراء ثم تعيين flip_h ممتلكات الرسوم المتحركة ل حقيقي. سيؤدي هذا إلى قلب الرسوم المتحركة أفقيًا.

الاستفادة من الإشارات في AnimatedSprite

بالإضافة إلى التحكم في الرسوم المتحركة برمجيًا ، يوفر Godot نظام حدث قويًا يسمى الإشارات. تتيح لك الإشارات الاستجابة لأحداث أو تغييرات معينة تحدث أثناء تنفيذ لعبتك.

في حالة الرسوم المتحركة، هناك نوعان من الإشارات الهامة التي يمكنك استخدامها: الرسوم المتحركة_منتهية () و تغير الإطار ().

1. Animation_finished () إشارة

ال الرسوم المتحركة_منتهية () تنبعث الإشارة عندما تصل الرسوم المتحركة إلى الإطار الأخير ، إما أثناء تشغيل واحد أو عند تكرارها. هذه الإشارة مفيدة عندما تريد تنفيذ إجراءات أو تشغيل الأحداث عند اكتمال رسم متحرك.

 يوسع KinematicBody2Dfunc _ready (): AnimatedSprite.connect ("animation_finished"، self، "_on_animation_finished") func _on_animation_finished (): # طباعة تنفيذ الإجراءات أو تشغيل الأحداث ("الرسوم المتحركة انتهى! ") # رمز إضافي هنا ...

ربط الرسوم المتحركة_منتهية () إشارة الرسوم المتحركة الى _on_animation_finished () الطريقة في نفس البرنامج النصي باستخدام يتصل() وظيفة.

عندما تنتهي الرسوم المتحركة من اللعب ، يمكنك تنفيذ منطق مخصص أو تشغيل وظائف أخرى باستخدام _on_animation_finished () طريقة.

2. frame_changed () إشارة

ال تغير الإطار () تنبعث الإشارة كلما تغير الإطار الحالي للرسوم المتحركة. يمكن أن يحدث هذا عند تشغيل الرسم المتحرك أو عند تعديل الإطار برمجيًا. يمكنك استخدام هذه الإشارة لاكتشاف تغييرات الإطار والرد وفقًا لذلك.

 يمتد KinematicBody2Dfunc _ready (): AnimatedSprite.connect ("frame_changed"، self، _on_frame_changed ") func _on_frame_changed (): # تنفيذ الإجراءات بناءً على الإطار الحالي var currentFrame = $ AnimatedSprite.frame print ("Current frame:"، currentFrame) # رمز إضافي هنا...

ربط تغير الإطار () إشارة الرسوم المتحركة الى _ on_frame_changed () الطريقة في نفس البرنامج النصي. عندما يتغير الإطار ، يمكنك الوصول إلى الإطار الحالي باستخدام ملف _ on_frame_changed () طريقة وتنفيذ الإجراءات أو المنطق بناءً على قيمة الإطار.

من خلال استخدام الإشارات ، يمكنك الاستجابة لأحداث الرسوم المتحركة مثل الإكمال أو تغييرات الإطار ودمج السلوكيات الديناميكية أو إطلاق إجراءات محددة في لعبتك.

اجعل ألعاب Godot أكثر جاذبية باستخدام الرسوم المتحركة

يمكن أن تؤدي إضافة رسوم متحركة ثنائية الأبعاد إلى ألعاب Godot إلى تحسين تجربة اللاعب الإجمالية بشكل كبير. تجعل الرسوم المتحركة الشخصيات تنبض بالحياة ، مما يجعل حركاتهم وأفعالهم أكثر جاذبية من الناحية المرئية. من خلال دمج الرسوم المتحركة لمختلف الإجراءات مثل المشي والجري والهجوم والقفز ، يمكنك إنشاء بيئة لعب ديناميكية وغامرة.

علاوة على ذلك ، يمكنك أيضًا استخدام الرسوم المتحركة لتقديم ملاحظات مرئية للاعب. تساعد هذه التعليقات في جعل اللعبة أكثر تفاعلاً واستجابة ، مما يعزز إحساس اللاعب بالتحكم والمشاركة.