أضف بعض الشخصية والخلفية إلى شخصياتك من خلال نظام حوار قوي.

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

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

إعداد لعبة Godot الخاصة بك

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

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

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

الآن، إضافة حركة الحرف والتفاعل مع المنصات باستخدام GDScript. استبدل البرنامج النصي الافتراضي لعقدة CharacterBody2D بالكود التالي:

extends CharacterBody2D

var speed = 300

func _physics_process(delta):
var input_dir = Vector2.ZERO

instagram viewer

if Input.is_action_pressed("ui_left"):
input_dir.x -= 1

if Input.is_action_pressed("ui_right"):
input_dir.x += 1

if Input.is_action_pressed("ui_up"):
input_dir.y -= 1

if Input.is_action_pressed("ui_down"):
input_dir.y += 1

velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)

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

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

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

في الخاص بك شخصيةBody2D البرنامج النصي، أدخل بعض المتغيرات الإضافية للتعامل مع مربع الحوار ومحتواه:

var dialogue_box: Label
var close_button: Button
var dialogue_lines: Array = ["Hello, adventurer!", "Welcome to our village."]

var current_line: int = 0
var line_timer: float = 0

ال مربع حوار سيكون مسؤولاً عن عرض نص الحوار، في حين أن زر الاغلاق سيسمح للاعبين بإغلاق مربع الحوار عند الحاجة.

في ال _مستعد وظيفة وإنشاء وتهيئة مربع الحوار:

func _ready():
dialogue_box = Label.new()
dialogue_box.visible = false
add_child(dialogue_box)

عرض نص الحوار

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

تعديل الخاص بك _physics_process وظيفة للتعامل مع عرض خطوط الحوار:

if line_timer > 0:
line_timer -= delta
elif current_line < dialogue_lines.size():
show_next_dialogue_line()

يتحقق هذا الجزء من التعليمات البرمجية مما إذا كان line_timer أكبر من 0. إذا كان الأمر كذلك، فإنه يقلل الموقت بقيمة دلتا. إذا لم يكن المؤقت نشطًا، وكان هناك المزيد من خطوط الحوار لعرضها، فسيتم استدعاء show_next_dialogue_line وظيفة.

تنفيذ show_next_dialogue_line وظيفة على النحو التالي:

func show_next_dialogue_line():
dialogue_box.text = dialogue_lines[current_line]
current_line += 1

# Display each line for 3 seconds
line_timer = 3.0

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

إضافة زر إغلاق

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

أولاً قم بتعديل _مستعد وظيفة لإنشاء زر إغلاق وإرفاق وظائفه.

func _ready():
dialogue_box = Label.new()
dialogue_box.visible = false
add_child(dialogue_box)

close_button = Button.new()
close_button.text = "Close"
close_button.position = Vector2(50, 30)
close_button.visible = false
close_button.pressed.connect(_on_close_button_pressed)
add_child(close_button)

يقوم هذا الرمز بإنشاء مثيل لـ زر الطبقة وتخصيص مظهرها وموقعها. كما أنه يربط الضغط إشارة إلى _on_Close_button_pressed وظيفة.

الآن قم بتنفيذ _on_Close_button_pressed وظيفة. في هذه الوظيفة، قم بتعيين رؤية كل من مربع الحوار وزر الإغلاق على خطأ شنيع. يؤدي هذا إلى إخفاء واجهة الحوار بشكل فعال عن اللاعب.

تذكر إعادة تعيين الخط الحالي قم بالفهرسة إلى 0 للتأكد من أن الحوار يبدأ من البداية في المرة التالية التي يبدأ فيها اللاعب المحادثة:

func _on_close_button_pressed():
dialogue_box.visible = false
close_button.visible = false
current_line = 0

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

أفضل الممارسات لنظام الحوار الخاص بك

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

الاتساق هو المفتاح

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

صياغة أصوات الشخصيات

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

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

اختيارات ذات مغزى

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

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

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

اتساق واجهة المستخدم

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

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

الارتقاء بألعاب Godot الخاصة بك باستخدام أنظمة الحوار

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

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