Godot'ta Yukarıdan Aşağıya Nişancı Oyunu Yaratmak
Bu eğitimde, güçlü bir açık kaynaklı oyun motoru olan Godot'u kullanarak yukarıdan aşağıya bir nişancı oyununun nasıl oluşturulacağını öğreneceksiniz. Yukarıdan aşağıya atıcılar genellikle yukarıdan aşağıya bir perspektifle hareket eden ve ateş eden, düşmanları yenmeyi ve hedefleri tamamlamayı amaçlayan bir karakteri kontrol etmeyi içerir.
Projenizi Kurma
Godot'ta yeni bir 2D proje oluşturarak başlayın. Projeniz oluşturulduktan sonra ana sahnenizi ayarlayın:
- Bir Oyuncu Oluşturun:
- Oyuncu karakteriniz için bir
KinematicBody2D
düğümü ekleyin. - Oyuncu için bir hareketli grafik oluşturun ve düşmanlarla ve çevreyle doğru etkileşim için çarpışma şekillerini yapılandırın.
- Oyuncu karakteriniz için bir
- Düşman Ekle:
KinematicBody2D
düğümlerini veya diğer uygun düğümleri kullanarak düşman karakterleri oluşturun.- Düşman hareketini, saldırıyı ve oyuncunun tespitini kontrol etmek için yapay zeka davranış komut dosyaları tasarlayın.
- Atış Mekanizmasını Uygulayın:
- Oyuncu atışlarını yönetmek için senaryolar yazın.
- Mermileri fare imlecine doğru fırlatmak için fare tıklamalarını veya tuşlara basmayı algılamak için giriş olaylarını kullanın.
Kod Örneği: Oyuncu Hareketi ve Şut Çekme
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
Kodun Açıklaması
- MOVE_SPEED: Oyuncunun hareket hızını tanımlayan sabit.
- SHOOT_SPEED: Oyuncu tarafından atılan mermilerin hızını tanımlayan sabit.
- bullet_scene: Mermi nesnesini içeren sahneye referans.
- _process(delta): Oyuncunun hareketini ve çekimini güncellemek için her kareyi çalıştıran işlev.
- Oyuncu Hareketi:
move_and_slide()
'u kullanarak hareket tuşlarından ("move_right", "move_left", "move_down", "move_up") gelen girdiye dayalı olarak hareketi hesaplar. - Oyuncu Atışı: Atış ("ateş") için girdiyi algılar ve oyuncunun konumunda bir mermi nesnesini başlatır, yönünü fare imlecine doğru ayarlar ve atış simülasyonu için hız uygular.
Oynanışı Geliştirme
Düşman yapay zekası, güçlendirmeler ve daha karmaşık seviye tasarımı ekleyerek oyununuzu genişletin. Gösterişli bir oyun deneyimi oluşturmak için ses efektleri, görsel efektler ve kullanıcı arayüzü öğeleri uygulayın.
Çözüm
Bu kod örneğiyle Godot'ta yukarıdan aşağıya bir nişancı oyununun temelini oluşturmaya başladınız. Benzersiz oyununuzu yaratmak için farklı mekanikler ve özelliklerle denemeler yapın ve daha fazla geliştirme için daha gelişmiş Godot işlevlerini keşfedin.