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

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

باستخدام نظام الحوار ، يمكنك إنشاء محادثات بين اللاعب والشخصيات غير المشغلة (NPCs). يمكن للاعب اختيار الردود أو اتخاذ القرارات التي تؤثر على سرد اللعبة أو النتيجة.

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

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

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

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

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

instagram viewer

ها هي النتيجة:

إضافة مربع حوار

الآن بعد أن أصبح لديك هيكل أساسي للعبة ، أضف مربع حوار يظهر عندما يصطدم اللاعب بالعدو. يمكنك إنشاء مربع حوار باستخدام أشكال بسيطة وعرضه على الشاشة.

أضف حوار_نشط العلم إلى لعبة class ، التي تشير إلى ما إذا كان يجب عرض مربع الحوار أم لا. في ال on_update طريقة، تحقق من اصطدام العدو، وإذا تم الكشف عنها ، قم بتعيين حوار_نشط ل حقيقي.

في ال on_draw الطريقة ، استدعاء draw_dialogue_box الطريقة إذا كان الحوار نشطًا. ال draw_dialogue_box طريقة رسم مستطيل كخلفية لمربع الحوار وتعرض رسالة نصية.

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

# داخل فئة اللعبة

فصللعبة(ممر. نافذة او شباك):
def__فيه__(الذات):
# ...

self.dialogue_active = خطأ شنيع

defon_update(ذاتي ، delta_time):
لو self.check_enemy_collision ():
self.dialogue_active = حقيقي

defon_draw(الذات):
# ...

لو حوار_الذاتي:
self.draw_dialogue_box ()

defcheck_enemy_collision(الذات):
player_radius = 25
Distance_x = القيمة المطلقة (self.player_x - self.platform_x)
Distance_y = القيمة المطلقة (self.player_y - self.platform_y)
مجتمعة_ نصف قطر = لاعب_شعاع + 25

لو المسافة_x و المسافة_ص
يعودحقيقي
آخر:
يعودخطأ شنيع

defdraw_dialogue_box(الذات):
نص = "مرحبا أيها اللاعب! كيف حالك؟"

arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
ارتفاع الشاشة // 2, 500, 200، أبيض)

arcade.draw_text (نص ، SCREEN_WIDTH // 2,
ارتفاع الشاشة // 2 + 20، أسود ، حجم الخط =16,
anchor_x ="مركز"، anchor_y ="مركز")

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

عرض نص الحوار

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

# داخل فئة اللعبة

فصللعبة(ممر. نافذة او شباك):
def__فيه__(الذات):
# ...

self.dialogue_active = خطأ شنيع
self.dialogue_messages = [
"مرحبا أيها اللاعب! كيف حالك؟",
"طقس جميل اليوم ، أليس كذلك؟",
"احذروا الأعداء الذين ينتظرونكم!"
]
self.dialogue_index = 0

defdraw_dialogue_box(الذات):

arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
ارتفاع الشاشة // 2, 500, 200، أبيض)

arcade.draw_text (self.dialogue_messages [self.dialogue_index] ،
عرض الشاشة // 2، ارتفاع الشاشة // 2 + 20، أسود ، حجم الخط =16,
anchor_x ="مركز"، anchor_y ="مركز")

قدم ثلاثة متغيرات جديدة: رسائل_حوار, الحوار_فهرس، و حوار_نشط. تحتوي قائمة Dial_messages على الرسائل النصية التي سيعرضها مربع الحوار. يتتبع مربع الحوار "مؤشر" الرسالة الحالية لإظهارها. في كل مرة يظهر مربع الحوار ، يمكنك زيادة مؤشر_الحوار لإظهار الرسالة التالية.

إضافة زر

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

# داخل فئة اللعبة

فصللعبة(ممر. نافذة او شباك):
def__فيه__(الذات):
# ...

self.dialogue_active = خطأ شنيع

self.dialogue_messages = [
"مرحبا أيها اللاعب! كيف حالك؟",
"طقس جميل اليوم ، أليس كذلك؟",
"احذروا الأعداء الذين ينتظرونكم!"
]

self.dialogue_index = 0

defon_mouse_press(ذاتي ، x ، y ، زر ، معدِّلات):
الفهرس = (self.dialogue_index + 1)٪ len (رسائل_حوار_ذاتية)

لو حوار_الذاتي:
لو زر == رواق. MOUSE_BUTTON_LEFT:
self.dialogue_index = فهرس

defdraw_dialogue_box(الذات):
# ...

arcade.draw_text ("التالي"، عرض الشاشة // 2، ارتفاع الشاشة // 2 - 50,
أسود ، font_size =16، anchor_x ="مركز"، anchor_y ="مركز")

أضف ال on_mouse_press طريقة ل لعبة فصل. عندما يكون الحوار نشطًا وتضغط على زر الماوس الأيسر ، فإن هذه الطريقة تزيد من الحوار_فهرس لعرض الرسالة التالية في رسائل_حوار قائمة. ال ٪ len (رسائل_حوار ذاتية) يضمن أن الفهرس يلتف حول بداية القائمة عند الوصول إلى النهاية.

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

لتعزيز نظام الحوار بشكل أكبر ، يمكنك التفكير في إضافة الميزات الإضافية التالية:

خيارات متعددة

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

لتنفيذ ذلك ، يمكنك تعديل ملف draw_dialogue_box طريقة عرض قائمة بالاختيارات والتعامل مع اختيار اللاعب وفقًا لذلك.

صور شخصية

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

تحريك النص

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

مؤثرات صوتية

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

أفضل الممارسات لنظام الحوار

عند تنفيذ نظام حوار ، ضع في اعتبارك أفضل الممارسات التالية:

واجهة مستخدم واضحة

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

صوت شخصية متسق

حافظ على الاتساق في الطريقة التي تتحدث بها الشخصيات والنبرة التي يستخدمونها خلال الحوار. هذا يساعد في إنشاء محادثات قابلة للتصديق وجذابة.

الصلة باللعبة

تأكد من أن الحوار يساهم بشكل هادف في سرد ​​اللعبة أو يوفر معلومات ذات صلة للاعب. تجنب المحادثات المفرطة أو غير ذات الصلة التي قد تعطل تدفق اللعب.

الاختبار والتكرار

اختبر نظام الحوار الخاص بك بدقة لتحديد أي مشاكل أو تناقضات. كرر الحوار بناءً على ملاحظات اللاعب لتحسين الجودة الشاملة وتأثير المحادثات.

اجعل الألعاب أكثر متعة مع نظام الحوار

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