إنشاء لعبة إطلاق النار من أعلى إلى أسفل في Godot

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

إعداد مشروعك

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

  1. إنشاء لاعب:
    • قم بإضافة عقدة KinematicBody2D لشخصية اللاعب الخاصة بك.
    • قم بإعداد كائن للاعب وقم بتكوين أشكال الاصطدام للتفاعل الدقيق مع الأعداء والبيئة.
  2. إضافة أعداء:
    • قم بإنشاء شخصيات العدو باستخدام العقد KinematicBody2D أو العقد الأخرى المناسبة.
    • تصميم نصوص سلوكية للذكاء الاصطناعي للتحكم في حركة العدو ومهاجمته واكتشاف اللاعب.
  3. تنفيذ آلية التصوير:
    • كتابة نصوص للتعامل مع إطلاق النار على اللاعب.
    • استخدم أحداث الإدخال لاكتشاف نقرات الماوس أو ضغطات المفاتيح لإطلاق المقذوفات نحو مؤشر الماوس.

مثال الكود: حركة اللاعب والتسديد

extends KinematicBody2D

const MOVE_SPEED = 200
const SHOOT_SPEED = 400
var bullet_scene = preload("res://Bullet.tscn")

func _process(delta):
    # Player Movement
    var input_vector = Vector2.ZERO
    input_vector.x = Input.get_action_strength("move_right") - Input.get_action_strength("move_left")
    input_vector.y = Input.get_action_strength("move_down") - Input.get_action_strength("move_up")
    input_vector = input_vector.normalized() * MOVE_SPEED * delta
    move_and_slide(input_vector)

    # Player Shooting
    if Input.is_action_just_pressed("shoot"):
        var bullet_instance = bullet_scene.instance()
        var direction = (get_global_mouse_position() - global_position).normalized()
        bullet_instance.direction = direction
        bullet_instance.position = global_position
        get_parent().add_child(bullet_instance)
        bullet_instance.linear_velocity = direction * SHOOT_SPEED

شرح الكود

  • MOVE_SPEED: ثابت يحدد سرعة حركة اللاعب.
  • SHOOT_SPEED: ثابت يحدد سرعة الرصاص الذي يطلقه اللاعب.
  • Bullet_scene: إشارة إلى المشهد الذي يحتوي على الكائن النقطي.
  • _process(delta): الوظيفة التي تقوم بتشغيل كل إطار لتحديث حركة اللاعب والتسديد.
  • حركة اللاعب: تحسب الحركة بناءً على الإدخال من مفاتيح الحركة ("move_right"، "move_left"، "move_down"، "move_up") باستخدام move_and_slide().
  • إطلاق النار من قبل اللاعب: يكتشف الإدخال لإطلاق النار ("إطلاق النار") ويقوم بإنشاء كائن رصاصي في موضع اللاعب، مع تحديد اتجاهه نحو مؤشر الماوس وتطبيق السرعة لمحاكاة إطلاق النار.

تعزيز اللعب

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

خاتمة

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