تعرف على كيفية عرض الأزرار المخصصة في مشاهد منفصلة لتعمل كقوائم شاشة بسيطة لألعابك.

الماخذ الرئيسية

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

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

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

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

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

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

instagram viewer

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

يمتد KinematicBody2D

سرعة ثابتة = 200
جاذبية const = 500
var velocity = Vector2.ZERO

func _physics_process (دلتا):
var move_direction = 0

لو إدخال. is_action_pressed ("ui_right"):
move_direction + = 1

لو إدخال. is_action_pressed ("ui_left"):
اتجاه_النقل - = 1

velocity.x = move_direction * السرعة
velocity.y + = الجاذبية * دلتا
السرعة = move_and_slide (السرعة ، Vector2.UP)

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

قم بإنشاء قائمة ابدأ

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

بعد ذلك ، أضف عقدة زر كعقدة فرعية لعقدة التحكم. اضبط نص الزر على ألعب لعبة. اكتب رمزًا مخصصًا لـ ألعب لعبة زر للتعامل مع وظائفه:

يمتد السيطرة

func _ready ():
var playButton = $ Button
playButton.connect ("مضغوط"، الذات، "_ on_PlayButton_pressed")

func _on_PlayButton_pressed ():
# قم بتحميل مشهد اللعبة
var gameScene = التحميل المسبق ("الدقة: //GameScene.tscn")

# الانتقال إلى مشهد اللعبة
get_tree (). change_scene (gameScene)

هذا الرمز يربط ضغط إشارة زر التشغيل الى _عند_التشغيل_الزر_الضغط وظيفة. تقوم هذه الوظيفة بتحميل مشهد اللعبة باستخدام التحميل المسبق () ويخلق نسخة منه. ثم يستخدم تغيير المشهد () للانتقال إلى مشهد اللعبة.

وبالمثل ، يمكنك إضافة ملف مخرج الزر الذي يمكن للاعبين استخدامه لإنهاء اللعبة:

func _ready ():
var playButton = $ Button
var exitButton = $ Button2
playButton.connect ("مضغوط"، الذات، "_ on_PlayButton_pressed")
exitButton.connect ("مضغوط"، الذات، "_on_ExitButton_pressed")

func _on_ExitButton_pressed ():
# إنهاء اللعبة
get_tree (). إنهاء ()

هذا الرمز يربط ضغط إشارة زر الخروج إلى _on_ExitButton_pressed وظيفة. تلك الوظيفة تستدعي يترك() للخروج من اللعبة.

قم بإنشاء قائمة الإيقاف المؤقت

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

أضف المشهد كعقدة فرعية للعبة الرئيسية. في البرنامج النصي المرفق بعقدة التحكم ، أضف الكود التالي:

يمتد السيطرة

func _ready ():
$ btnResume.connect ("مضغوط"، الذات، "_on_resume_button_pressed")
$ btnHome.connect ("مضغوط"، الذات، "_ on_menu_button_pressed")
$ btnExit.connect ("مضغوط"، الذات، "_ عند_ الخروج_زر_الضغط")
pause_mode = العقدة. PAUSE_MODE_PROCESS
get_tree (). متوقف مؤقتًا = خطأ
إخفاء النفس ()

func _input (حدث):
لو event.is_action_pressed ("ui_cancel"):
لولا self.is_visible_in_tree ():
# إيقاف اللعبة مؤقتًا عندما تكون قائمة الإيقاف المؤقت غير مرئية
self.show ()
get_tree (). متوقف مؤقتًا = صحيح
آخر:
# قم بإلغاء الإيقاف المؤقت للعبة عندما تكون قائمة الإيقاف المؤقت مرئية بالفعل
إخفاء النفس ()
get_tree (). متوقف مؤقتًا = خطأ

func _on_resume_button_pressed ():
# إخفاء قائمة الإيقاف المؤقت واستئناف اللعبة
إخفاء النفس ()
get_tree (). متوقف مؤقتًا = خطأ

func _on_menu_button_pressed ():
# العودة إلى القائمة الرئيسية
get_tree (). change_scene ("الدقة: //StartMenu.tscn")

func _on_exit_button_pressed ():
# إنهاء اللعبة
get_tree (). إنهاء ()

في ال _مستعد() وظيفة ، قم بتوصيل ضغط إشارة من أزرار السيرة الذاتية والصفحة الرئيسية والخروج إلى وظائف كل منها: _on_resume_button_pressed (), _ on_menu_button_pressed ()، و _ عند_ الخروج_الزر_الضغط ().

تعيين وقفة_الوضع من العقدة إلى العقدة. PAUSE_MODE_PROCESS. يسمح هذا للعبة بمواصلة الجري أثناء ظهور قائمة الإيقاف المؤقت. افتراضيًا ، قم بإخفاء قائمة الإيقاف المؤقت باستخدام إخفاء النفس () وحدد get_tree (). متوقف مؤقتًا ل خطأ شنيع لضمان عدم إيقاف اللعبة مؤقتًا في البداية.

التالي، استخدم عبارة if في ال _input (حدث) وظيفة للتحقق مما إذا كان ui_cancel يتم الضغط على العمل. إذا كانت قائمة الإيقاف المؤقت غير مرئية حاليًا ، فيمكنك إيقاف اللعبة مؤقتًا من خلال إظهار قائمة الإيقاف المؤقت والإعداد get_tree (). متوقف مؤقتًا ل حقيقي.

إنشاء لعبة على الشاشة

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

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

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

قم بتوصيل إشارات الزر بوظائفها الخاصة للتعامل مع الإجراءات عند النقر فوقها. على سبيل المثال ، قم بتوصيل ملف العب مرة أخرى زر وظيفة تسمى onPlayAgainPressed و ال مخرج زر وظيفة تسمى عند الخروج.

للتعامل مع وظيفة الزر ، تحتاج إلى تحديد الوظائف المقابلة في كود GDScript الخاص باللعبة فوق المشهد. هذا مثال:

يمتد السيطرة

func _ready ():
Button.connect $ ("مضغوط"، الذات، "onPlayAgainPressed")
Button2.connect $ ("مضغوط"، الذات، "onExitPressed")

func onPlayAgainPressed ():
var gameScenePath = "الدقة: //GameScene.tscn"
get_tree (). change_scene (gameScenePath)

func onExitPressed ():
get_tree (). إنهاء () # أغلق تطبيق اللعبة

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

يمتد KinematicBody2D

func _physics_process (دلتا):
# تحقق مما إذا كان اللاعب قد تجاوز حدود الشاشة
var screen_size = get_viewport_rect (). size
لو velocity.y> screen_size.y أو velocity.y < 0:
show_game_over_screen ()

func show_game_over_screen ():
get_tree (). change_scene ("الدقة: //GameOver.tscn")

ستبدو شاشة Game Over كما يلي ، مع أزرار للاعب لإعادة التشغيل أو الإنهاء:

بما في ذلك الميزات الإضافية

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

انتقالات متحركة

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

مؤثرات صوتية

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

يجعل نظام الصوت المدمج في Godot من السهل تشغيل الأصوات في الأوقات المناسبة.

تأثيرات بصرية

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

خلفيه موسيقية

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

دعم الترجمة

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

توفير آلية لتغيير محتوى نص الملصقات والأزرار ديناميكيًا بناءً على اللغة المحددة. يمكن أن تساعد أدوات وموارد التعريب الخاصة بـ Godot في إدارة عناصر واجهة المستخدم متعددة اللغات.

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

جعل ألعاب Godot أكثر تفاعلاً مع قائمة واجهة المستخدم المخصصة

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

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