تعلم كيفية إنشاء قوائم الألعاب وتصميم واجهات المستخدم بسهولة باستخدام أدوات Arcade GUI.

تلعب قوائم اللعبة وواجهات المستخدم (UI) دورًا مهمًا في تحسين تجربة المستخدم والمشاركة في اللعبة. توفر Arcade ، مكتبة Python الشهيرة لتطوير الألعاب ، أدوات قوية لواجهة المستخدم الرسومية (GUI) التي تسهل تصميم وتنفيذ قوائم اللعبة وعناصر واجهة المستخدم.

قم بإنشاء لعبة بسيطة

قبل أن تبدأ ، تأكد من أن لديك نقطة مثبتة على جهازك. استخدم هذا الأمر لتثبيت مكتبة الآركيد:

نقطة تثبيت الممرات

ابدأ بإنشاء لعبة بسيطة باستخدام Arcade.

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

ستحتوي هذه اللعبة على كائن لاعب يمكنه التحرك يسارًا ويمينًا وكائن معاد. هذا هو رمز اللعبة:

يستورد ممر

العرض = 800
ارتفاع = 600
PLAYER_SPEED = 25

فصللعبة(ممر. نافذة او شباك):
def__فيه__(الذات):
سوبر () .__ init __ (WIDTH ، HEIGHT ، "لعبة بسيطة")
self.player_x = WIDTH // 2
self.enemy_x = العرض - 50
self.game_over = خطأ شنيع

defيثبت(الذات):
arcade.set_background_color (arcade.color. أبيض)

defon_draw(الذات):
arcade.start_render ()

instagram viewer

arcade.draw_circle_filled (self.player_x ، HEIGHT // 2, 20، الممرات. أزرق)
arcade.draw_circle_filled (self.enemy_x ، HEIGHT // 2, 20، الممرات. أحمر)

defتحديث(ذاتي ، delta_time):
عدو النفس x + = 0.5
لو self.enemy_x> = العرض:
self.game_over = حقيقي

defon_key_press(ذاتي ، مفتاح ، معدِّلات):
لو مفتاح == arcade.key. غادر:
self.player_x - = PLAYER_SPEED
أليف مفتاح == arcade.key. يمين:
self.player_x + = PLAYER_SPEED

لعبة = لعبة ()
نمط اللعبة()
arcade.run ()

إضافة لعبة على الشاشة

أضف لعبة على الشاشة تعرض رسالة عندما يكون ملف يتحرك العدو خارج نافذة اللعبة. استخدم ال arcade.gui. UIManager و arcade.gui. UIMessageBox فصول لتحقيق ذلك.

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

قم بإنشاء ملف جديد باسم game-over.py وأضف الكود مع التحديثات أدناه:

يستورد ممر
من arcade.gui يستورد UIManager ، UIMessageBox

العرض = 800
ارتفاع = 600
PLAYER_SPEED = 25

فصللعبة(ممر. نافذة او شباك):
def__فيه__(الذات):
سوبر () .__ init __ (WIDTH ، HEIGHT ، "لعبة بسيطة")
self.player_x = WIDTH // 2
self.enemy_x = العرض - 50
self.ui_manager = UIManager ()
self.game_over = خطأ شنيع

defيثبت(الذات):
arcade.set_background_color (arcade.color. أبيض)
self.ui_manager.enable () # تمكين مدير واجهة المستخدم

defon_draw(الذات):
arcade.start_render ()
arcade.draw_circle_filled (self.player_x ، HEIGHT // 2, 20، الممرات. أزرق)
arcade.draw_circle_filled (self.enemy_x ، HEIGHT // 2, 20، الممرات. أحمر)
لو self.game_over:
self.ui_manager.draw ()

defتحديث(ذاتي ، delta_time):
عدو النفس x + = 0.5
لو self.enemy_x> = العرض:
self.show_game_over_screen ()
self.game_over = حقيقي
لو self.game_over:
self.ui_manager.enable ()
آخر:
self.ui_manager.disable ()

defon_key_press(ذاتي ، مفتاح ، معدِّلات):
لو مفتاح == arcade.key. غادر:
self.player_x - = PLAYER_SPEED
أليف مفتاح == arcade.key. يمين:
self.player_x + = PLAYER_SPEED

defshow_game_over_screen(الذات):
message_box = UIMessageBox (
العرض =400,
الارتفاع =200,
message_text ="انتهت اللعبة!"
)
self.ui_manager.add (message_box)

لعبة = لعبة ()
نمط اللعبة()
arcade.run ()

أدناه هو الإخراج:

إضافة الأزرار

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

قم بإنشاء ملف جديد باسم الأزرار وأضف الكود مع التحديثات أدناه:

defshow_game_over_screen(الذات):
message_box = UIMessageBox (
العرض =400,
الارتفاع =200,
message_text ="انتهت اللعبة!",
أزرار = ("إعادة تشغيل", "مخرج"),
رد الاتصال = self.on_game_over_button_click
)
self.ui_manager.add (message_box)

defon_game_over_button_click(self، button_text):
لو button_text == "إعادة تشغيل":
self.restart_game ()
أليف button_text == "مخرج":
arcade.close_window ()

defإعادة تشغيل اللعبة(الذات):
self.game_over = خطأ شنيع
self.enemy_x = العرض - 50
self.ui_manager.clear ()

أدناه هو الإخراج:

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

توفر أدوات واجهة المستخدم الرسومية الخاصة بـ Arcade مجموعة متنوعة من الميزات الإضافية التي يمكن أن تعزز وظائف وتفاعل قوائم اللعبة وتصميمات واجهة المستخدم. وفيما يلي بعض الأمثلة على ذلك:

UIDraggableMixin

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

UIMouseFilterMixin

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

UIWindowLikeMixin

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

سطح

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

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

أفضل الممارسات لدمج واجهة المستخدم الرسومية

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

خطة ونموذج أولي

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

حافظ على اتساقها

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

الرسم المتجاوب

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

معالجة فعالة للحدث

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

تعليقات المستخدمين

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

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

زيادة تفاعل المستخدم مع واجهة مستخدم جذابة بصريًا

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