اجعل تجربة اللعب أكثر جاذبية من خلال تنفيذ نظام الحوار.
يمكن أن يؤدي تنفيذ نظام حوار في Pygame إلى تعزيز التجربة التفاعلية للعبة بشكل كبير. يسمح نظام الحوار للعبة بتقديم المحادثات والرسائل والاختيارات للاعب ، مما يخلق طريقة لعب أكثر جاذبية وجاذبية.
توفر مكتبة Pygame الأدوات اللازمة لإنشاء واجهة مستخدم رسومية (GUI) والتعامل مع مدخلات المستخدم ، مما يجعلها خيارًا مثاليًا لتنفيذ نظام الحوار.
قم بإنشاء لعبة بسيطة
قبل أن تبدأ ، تأكد من أن لديك نقطة مثبتة على نظامك. استخدم هذا الأمر لتثبيت ملف القزم مكتبة:
نقطة تثبيت pygame
بعد ذلك ، ابدأ بإنشاء لعبة بسيطة حيث يمكن للاعب التحرك يمينًا ويسارًا مع تجنب العدو.
الكود المستخدم في هذه المقالة متوفر في هذا مستودع جيثب وهو مجاني لك لاستخدامه بموجب ترخيص MIT.
يقوم مقتطف الشفرة أدناه بإعداد نافذة اللعبة ، وتهيئة خصائص اللاعب والعدو ، وتشغيل حلقة اللعبة.
# استيراد المكتبات اللازمة
يستورد القزم
من البيغامي يستورد *pygame.init ()
# قم بإعداد نافذة اللعبة
عرض_الشاشة ، ارتفاع_الشاشة = 800, 600
screen = pygame.display.set_mode ((screen_width، screen_height))
pygame.display.set_caption ("لعبتي")# تحديد الألوان
أسود = (0, 0, 0)
أبيض = (255, 255, 255)
رمادي = (128, 128, 128)# خصائص اللاعب
player_x = 400
player_y = 500
player_speed = 5# خصائص العدو
العدو_x = 400
أعداء = 100
العدو_سرعة = 3تشغيل = حقيقي
الساعة = pygame.time. ساعة()بينما جري:
ل حدث في pygame.event.get ():
لو event.type == QUIT:
تشغيل = خطأ شنيعمفاتيح = pygame.key.get_pressed ()
# حركة لاعب
لو مفاتيح [K_LEFT] و player_x> 0:
player_x - = player_speed
لو مفاتيح [K_RIGHT] و player_xplayer_x + = player_speed # تحديث موقع العدو
_y + = العدو_السرعة
لو العدو_y> شاشة_ارتفاع:
أعداء = -50# فحص الاصطدام
لو القزم. تصحيح (player_x ، player_y ، 50, 50) .colliderect (pygame. تصحيح 50, 50)):
# تنفيذ مربع الحوار هنا
يمرملء الشاشة (أسود)
pygame.draw.rect (شاشة ، بيضاء ، (player_x ، player_y ، 50, 50))
pygame.draw.rect (screen، WHITE، (العدو_x، العدو_y، 50, 50))
pygame.display.flip ()
على مدار الساعة.60)
pygame.quit ()
أدناه هو الإخراج:
إنشاء مربع حوار
لتنفيذ مربع حوار ، تحتاج إلى عرضه عندما يلمس اللاعب العدو. أضف ال مربع حوار المتغير ، الذي يتحكم في ما إذا كان يجب عرض مربع الحوار أم لا.
داخل حلقة اللعبة ، تحقق من الاصطدام بين اللاعب والعدو، وإذا كان هناك تصادم ، فقم بتعيين مربع حوار ل حقيقي. ضمن الشرط حيث مربع حوار يكون حقيقي، ارسم مستطيلاً رمادي اللون على الشاشة باستخدام pygame.draw.rect () لتمثيل مربع الحوار.
قم بإنشاء ملف جديد باسم الحوار وأضف الكود مع التحديثات أدناه:
# خصائص مربع الحوار
Dial_box_width = 400
Dial_box_height = 200
الحوار_box_x = (عرض الشاشة - مربع الحوار_عرض العرض) // 2
Dial_box_y = (ارتفاع الشاشة - مربع الحوار_ارتفاع) // 2
مربع الحوار = خطأ شنيع
# ...
بينما جري:
ل حدث في pygame.event.get ():
لو event.type == QUIT:
تشغيل = خطأ شنيع
مفاتيح = pygame.key.get_pressed ()
# حركة لاعب
لو مفاتيح [K_LEFT] و player_x> 0:
player_x - = player_speed
لو مفاتيح [K_RIGHT] و player_x player_x + = player_speed
# تحديث موقع العدو
_y + = العدو_السرعة
لو العدو_y> شاشة_ارتفاع:
أعداء = -50
# فحص الاصطدام
لو القزم. تصحيح (player_x ، player_y ، 50, 50) .colliderect (pygame. تصحيح 50, 50)):
مربع الحوار = حقيقي
ملء الشاشة (أسود)
لو مربع حوار:
pygame.draw.rect (شاشة ، رمادي ، (مربع الحوار_x ،
مربع الحوار ،
عرض_صندوق_الحوار ،
مربع الحوار_ارتفاع))
# أضف نص الحوار والأزرار هنا
آخر:
pygame.draw.rect (شاشة ، بيضاء ، (player_x ، player_y ، 50, 50))
pygame.draw.rect (screen، WHITE، (العدو_x، العدو_y، 50, 50))
pygame.display.flip ()
على مدار الساعة.60)
pygame.quit ()
أدناه هو الإخراج:
الآن ، لجعل مربع الحوار أكثر فاعلية وتفاعلية ، يمكنك المتابعة لإضافة أزرار ونص.
أضف الأزرار باستخدام Python GUI
لإضافة أزرار إلى مربع الحوار ، يمكنك استخدام مكتبة Python GUI مثل Pygame GUI أو PySimpleGUI.
قم بتثبيت واستيراد ملف pygame_gui الوحدة النمطية ، ثم قم بإنشاء مدير واجهة المستخدم الرسومية Pygame باستخدام pygame_gui. UIManager. بعد ذلك ، قم بإنشاء زر باستخدام ملف زر UIB فئة مقدمة من مكتبة Python GUI.
داخل حلقة اللعبة ، أضف manager.update (pygame.time.get_ticks () / 1000.0) لتحديث مدير واجهة المستخدم الرسومية ، و manager.draw_ui (شاشة) لرسم عناصر واجهة المستخدم الرسومية على الشاشة.
قم بإنشاء ملف جديد باسم الأزرار وأضف الكود مع التحديثات أدناه:
يستورد pygame_gui# مدير واجهة المستخدم الرسومية Pygame
مدير = pygame_gui. UIManager ((screen_width، screen_height))# إنشاء زر
button_width = 100
button_height = 30
button_x =اور_بوكس_س + (مربع_عرض_الحوار - عرض_زر) // 2
button_y = مربع الحوار_صندوق + (مربع الحوار_ارتفاع - button_height) // 2
زر = عناصر pygame_gui. زر UIB (قريب_الصحيح = pygame. تصحيح (button_x ، button_y ، button_width ، button_height) ،
نص ='انقر فوق لي',
مدير = مدير)تشغيل = حقيقي
الساعة = pygame.time. ساعة()بينما جري:
ل حدث في pygame.event.get ():
لو event.type == pygame. يترك:
تشغيل = خطأ شنيعmanager.process_events (حدث)
مفاتيح = pygame.key.get_pressed ()
# فحص الاصطدام
لو القزم. تصحيح (player_x ، player_y ، 50, 50) .colliderect (pygame. تصحيح 50, 50)):
مربع الحوار = حقيقيملء الشاشة (أسود)
لو مربع حوار:
pygame.draw.rect (شاشة ، رمادي ، (مربع الحوار_x ،
مربع الحوار ،
عرض_صندوق_الحوار ،
مربع الحوار_ارتفاع))
manager.update (pygame.time.get_ticks () / 1000.0)
manager.draw_ui (شاشة)
آخر:
pygame.draw.rect (شاشة ، بيضاء ، (player_x ، player_y ، 50, 50))
pygame.draw.rect (screen، WHITE، (العدو_x، العدو_y، 50, 50))pygame.display.flip ()
على مدار الساعة.60)
pygame.quit ()
أدناه هو الإخراج:
مع هذه التغييرات ، يجب أن يكون الزر مرئيًا الآن داخل مربع الحوار عند ظهوره.
أضف نصًا باستخدام Python GUI
لعرض نص مخصص في مربع الحوار ، يمكنك استخدام وظيفة النص التي توفرها مكتبة Python GUI.
تحديد خصائص الخط باستخدام pygame.font. الخط (). إنشاء نص متغير مع المحتوى المطلوب ، ثم قم بعرضه باستخدام الخط واللون المحددين.
قم بإنشاء ملف جديد باسم text.py وأضف الكود مع التحديثات أدناه:
# تهيئة مدير واجهة المستخدم الرسومية Pygame
مدير = pygame_gui. UIManager ((screen_width، screen_height))# تحديد خصائص الخط
الخط = pygame.font. الخط (لا أحد, 24)
text_color = أسود# ...
بينما جري:
# ...لو مربع حوار:
pygame.draw.rect (شاشة ، رمادي ، (مربع الحوار_x ،
مربع الحوار ،
عرض_صندوق_الحوار ،
مربع الحوار_ارتفاع))# إضافة نص إلى مربع الحوار
نص = "أهلا ومرحبا بكم في اللعبة!"
rendered_text = font.render (نص ، حقيقي، لون الخط)
text_rect = rendered_text.get_rect (center = (printing_box_x +اور_box_width // 2,
مربّع_الحوار + مربع_ارتفاع // 2))
screen.blit (rendered_text، text_rect)
أدناه هو الإخراج:
بما في ذلك الميزات الإضافية
بالإضافة إلى الأزرار والنصوص ، هناك العديد من الميزات الأخرى التي يمكنك إضافتها إلى نظام الحوار الخاص بك في Pygame. هنا المزيد من الأمثلة:
المشاعر الشخصية
إظهار المشاعر أو تعبيرات الوجه للشخصيات أثناء الحوار للتعبير عن مزاجهم أو ردود أفعالهم. يمكن تحقيق ذلك باستخدام النقوش المتحركة أو تراكبات الصور التي تتغير بناءً على سياق المحادثة.
حوارات شرطية
استخدم العبارات الشرطية لبدء حوارات محددة بناءً على معايير معينة ، مثل تقدم اللاعب أو الخيارات السابقة أو الأحداث داخل اللعبة. هذا يضيف عمقًا وتفاعلات مخصصة بناءً على تصرفات اللاعب.
التعليقات الصوتية
عزز الانغماس في نظام الحوار من خلال دمج التمثيل الصوتي في حوارات الشخصيات. تشغيل المقاطع الصوتية في Pygame التي تتطابق مع النص المعروض في مربع الحوار لمنح الشخصيات صوتًا مميزًا.
من خلال دمج هذه الميزات الإضافية ، يمكنك إنشاء نظام حوار أكثر ديناميكية وجاذبية يعزز انغماس اللاعب ويوفر تجربة لعب فريدة.
أفضل الممارسات لإضافة نظام حوار
عند تنفيذ نظام حوار في Pygame ، من المهم اتباع أفضل الممارسات لضمان الكفاءة وقابلية الصيانة وتجربة اللاعب السلسة. فيما يلي بعض أفضل الممارسات الإضافية التي يجب وضعها في الاعتبار:
استخدم التصميم المستند إلى البيانات
تخزين محتوى الحوار ، بما في ذلك النص ومعلومات المتحدث وخيارات الحوار في ملفات بيانات خارجية (مثل JSON و XML). يسمح ذلك بتعديل محتوى الحوار وتعريبه وإدارته بسهولة دون الحاجة إلى تغيير التعليمات البرمجية.
تنفيذ مدير الحوار
قم بإنشاء فصل دراسي مخصص لمدير الحوار أو وحدة نمطية تتعامل مع منطق إدارة تفاعلات الحوار. يساعد هذا في الحفاظ على الكود منظمًا ويسمح بصيانة أسهل وقابلية للتوسعة.
اختبار اللعب والموازنة
اختبر نظام الحوار بانتظام وازنه لضمان تدفق الحوارات بشكل طبيعي ، والخيارات لها عواقب ذات مغزى ، وتوافق السرعة مع تجربة اللعب الشاملة. اجمع التعليقات من اللاعبين وكررها على محتوى الحوار وهيكله لتحسين مشاركة اللاعب.
دعم الترجمة
صمم نظام الحوار مع وضع الترجمة في الاعتبار من البداية. افصل السلاسل النصية عن الكود واستخدم ملفات اللغة أو مكتبات الترجمة لدعم لغات متعددة. وهذا يسمح بترجمة محتوى الحوار وتعريبه بشكل أسهل.
باتباع أفضل الممارسات هذه ، يمكنك التأكد من أن نظام الحوار الخاص بك مصمم جيدًا وفعال ومرن ، مما يتيح سهولة الصيانة والتحديثات مع تطور لعبتك.
اجعل الألعاب أكثر تفاعلاً مع نظام الحوار
يمكن أن تؤدي إضافة نظام حوار إلى لعبتك إلى جعلها أكثر جاذبية من خلال السماح للاعبين بالتفاعل مع الشخصيات من غير اللاعبين (NPCs) ، وكشف الوقائع المنظورة ، واتخاذ الخيارات ، واكتساب معلومات قيمة.
تذكر تصميم هيكل الحوار بعناية ، واستخدام نهج معياري ، والنظر في دمج المقتنيات والمستويات لإثراء تجربة اللاعب بشكل أكبر.