Birçok oyun, savaşılacak bir tür düşman içerir. Düşman savaşına ekleyebileceğiniz ve ustalaştırabileceğiniz çeşitli yolları keşfedin.

Düşmanlar, oyunları oyuncular için heyecanlı ve zorlu hale getirmede çok önemli bir rol oynar. İster bir 2B platform oyunu, ister yukarıdan aşağıya bir nişancı oyunu veya bir rol yapma oyunu oluşturuyor olun, düşman eklemek oyun deneyimini önemli ölçüde geliştirebilir.

Godot'nun kullanıcı dostu arayüzü ve sezgisel betik dili GDScript, süreci verimli ve eğlenceli hale getiriyor.

Godot Oyununu Kurmak

Düşman yaratmaya dalmadan önce, 2B oyununuzun temel yapısını Godot oyun motoru.

Godot'ta yeni bir 2B proje oluşturun. Ana sahnede, yeni bir KinematikBody2D düğüm ve adlandırın oyuncu. Oyuncu düğümünün içine bir ekleyin Çarpışma Şekli2D oyuncunun hit kutusu olacak dikdörtgen şeklinde. ayrıca ekle karakter oyuncu karakterinin görsel bir temsili olarak düğüm.

Bu makalede kullanılan kod bu makalede mevcuttur. GitHub deposu ve MIT lisansı altında ücretsiz olarak kullanabilirsiniz.

instagram viewer

Aşağıdaki GDScript kodunu şuraya ekleyin: oyuncu temel hareketi etkinleştirmek için düğüm:

extends KinematicBody2D

const SPEED = 200

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

if Input.is_action_pressed("ui_right"):
motion.x += SPEED

if Input.is_action_pressed("ui_left"):
motion.x -= SPEED

if Input.is_action_pressed("ui_down"):
motion.y += SPEED

if Input.is_action_pressed("ui_up"):
motion.y -= SPEED

motion = move_and_slide(motion)

Bu kod ile oyuncu ok tuşlarını veya WASD tuşlarını kullanarak sola, sağa, yukarı ve aşağı hareket edebilir.

Basit Bir Düşman Yaratmak

Artık bir oyuncu karakteri oluşturduğunuza göre, basit bir düşman yaratabilirsiniz.

Yeni bir sahne oluşturun ve bir StatikBody2D adlı düğüm Düşman. Düşman düğümünün içine bir Çarpışma Şekli2D düşmanın hitbox'ını tanımlamak için daire şeklindeki düğüm. ayrıca ekle karakter düşmanı görsel olarak temsil etmek için düğüm.

Çarpışma ayarlandığında düşman, oyun dünyanızdaki oyuncu ve diğer unsurlarla etkileşime girmeye hazır olacaktır.

Oyuncuyu Takip Eden Bir Düşman Yaratmak

Oyuncuyu takip eden düşmanlar yaratmak, oyuna yeni bir meydan okuma düzeyi ekler.

Aşağıdaki düşman türü için yeni bir sahne oluşturun ve bir sahne ekleyin. KinematikBody2D adlı düğüm Düşmanı takip et bir CollisionShape2D ile. Aşağıdaki GDScript kodunu, oynatıcıyı takip etmesi için FollowEnemy düğümüne ekleyin:

extends KinematicBody2D

const SPEED = 100

func _physics_process(delta):
var player = get_parent().get_node("Player")
var player_position = player.global_position
var enemy_position = global_position
var direction = player_position - enemy_position
direction = direction.normalized()

var motion = direction * SPEED * delta
move_and_collide(motion)

Şimdi Düşmanı takip et her karede oyuncunun konumuna doğru hareket edecektir.

Düşman Mermileri Ekleme

Artık düşmanın oyuncuya doğru mermi atmasını sağlayabilirsiniz. Yeni bir sahne oluşturun ve adlandırın Bullet.tscn. Ekle KinematikBody2D sahneye düğüm. Ekle Bullet.gd Bullet.tscn sahnesindeki KinematicBody2D düğümüne komut dosyası. Bullet sınıfını tanımlamak için aşağıdaki kodu ekleyin:

extends KinematicBody2D

const BULLET_SPEED = 300
var bullet_direction = Vector2.ZERO

func _physics_process(delta):
var motion = bullet_direction * BULLET_SPEED * delta
move_and_collide(motion)

func set_direction(direction):
bullet_direction = direction.normalized()

Şimdi, düşman için mermilerle yeni bir düğüm oluşturun ve adlandırın düşmana ateş etmek. ShootingEnemy düğümünün içine bir Çarpışma Şekli2D hitbox olarak bir dikdörtgen şekline sahip düğüm.

Aşağıdaki GDScript kodunu ShootingEnemy düğümüne ekleyerek kurşun atmasını sağlayın:

extends KinematicBody2D

const SPEED = 100
const SHOOT_DELAY = 1.5
var shoot_timer = SHOOT_DELAY

# Import the Bullet scene
const BulletScene = preload("res://Bullet.tscn")

func _physics_process(delta):

# Shooting logic
shoot_timer -= delta

if shoot_timer <= 0:
shoot_timer = SHOOT_DELAY
var bullet_instance = BulletScene.instance()
bullet_instance.global_position = global_position
bullet_instance.set_direction(direction)
get_parent().add_child(bullet_instance)

Düşman artık oyuncunun konumuna doğru periyodik olarak mermi atacak. koşullu kullan eğer ifade olup olmadığını kontrol etmek için ateş_timer 0'dan küçüktür. Eğer öyleyse, mermiyi vur.

Rastgele Hareket Eden Düşman

Oyuncuyu takip eden veya ona ateş eden düşmanlara ek olarak, rastgele hareket eden bir düşman, oyununuza öngörülemezlik ve meydan okuma unsuru ekleyebilir. Rastgele hareket modelleriyle bir düşman yaratmak, basit mantık ve rastgele sayı üretmenin bir kombinasyonunu gerektirir.

Yeni bir sahne oluşturarak başlayın ve KinematikBody2D adlı düğüm Rastgele Düşman. adlı yeni bir komut dosyası oluşturun. RandomEnemy.gd ve onu RandomEnemy düğümüne ekleyin. Komut dosyası, rastgele hareket mantığını işleyecektir.

extends KinematicBody2D

const MOVE_SPEED = 100
const MOVE_INTERVAL_MIN = 1.0
const MOVE_INTERVAL_MAX = 3.0

var move_timer = 0.0
var move_interval = 0.0
var move_direction = Vector2.ZERO

func _ready():
choose_new_direction()

func choose_new_direction():
move_interval = rand_range(MOVE_INTERVAL_MIN, MOVE_INTERVAL_MAX)
move_timer = move_interval
move_direction = Vector2(randf(), randf()).normalized()

func _physics_process(delta):
move_timer -= delta

if move_timer <= 0.0:
choose_new_direction()

var motion = move_direction * MOVE_SPEED * delta
move_and_collide(motion)

Ek Özellikler Dahil

Oyunu daha ilginç hale getirmek için düşmanlarınıza ekleyebileceğiniz birçok ek özellik vardır.

Patron Savaşları

Boss savaşları, oyununuzda zirve anları olarak hizmet eder ve oyuncuların becerilerini ve azimlerini test eden unutulmaz ve zorlu karşılaşmalar sağlar. Patron düşmanlar tipik olarak normal düşmanlardan daha büyük ve daha güçlüdür ve oyuncuların onları yenmek için belirli stratejiler ve taktikler kullanmasını gerektirir.

Dinamik Düşman Oluşturma

Düşman karşılaşmalarını oyuncunun performansına, konumuna veya oyun içi olaylara göre ayarlayan dinamik bir yumurtlama sistemi uygulayın. Bu, daha duyarlı ve kişiselleştirilmiş bir oyun deneyimi yaratır.

Çevresel Adaptasyon

Uçabilen, yüzebilen veya duvarlara tırmanabilen düşmanlar gibi çevreye uyum sağlayabilen düşmanlar yaratın. Bu çok yönlülük, yeni oyun olasılıkları açar ve oyuncuları farklı arazilerde gezinmeye zorlar.

Düşman Zayıflıkları ve Dirençleri

Düşmanlara belirli zayıflıklar ve dirençler atayın, oyuncuları farklı yaklaşımlar ve taktikler denemeye teşvik edin. Bazı düşmanlar belirli saldırılara veya unsurlara karşı savunmasız olabilirken, diğerleri bağışık veya dirençlidir.

Düşman Özelleştirme ve Davranış Varyasyonları

Düşmanlara rastgele davranış varyasyonları vererek bir öngörülemezlik düzeyi ekleyin. Örneğin, bir düşmanın farklı oyun geçişlerinde farklı saldırı kalıpları veya hareket hızları olabilir, bu da oyunu canlı ve tekrar oynanabilir durumda tutar.

Bu ek özelliklerin çeşitliliğini dahil etmek, oyununuzun düşman tasarımını zenginleştirebilir ve her karşılaşmayı oyuncular için benzersiz ve unutulmaz hale getirebilir.

Yeni mekaniği tanıtmak heyecan verici olsa da, oyununuzun genel tasarımında denge ve tutarlılığı korumanın çok önemli olduğunu unutmayın.

Düşman Yaratmak İçin En İyi Uygulamalar

Godot oyununuzda düşman yaratırken aşağıdaki en iyi uygulamaları göz önünde bulundurun:

Net Görsel İletişim

Düşmanları kolayca tanınabilir kılmak için çevreden sıyrılan farklı düşman tasarımları kullanın.

Düşman türlerini ayırt etmek için renk kodlaması veya benzersiz silüetler kullanmayı düşünün. Düşman animasyonlarının ve görsel efektlerinin davranışlarını ve saldırılarını güçlendirdiğinden emin olun.

Dengeleme Zorluğu

Oyuncu oyunda ilerledikçe karmaşıklığı artan düşmanları kademeli olarak tanıtın. Zorlukların tüm oyuncular için uygun olduğundan emin olmak için farklı beceri seviyelerine sahip oyuncularla düşman karşılaşmalarını test edin. Oyuncuları hayal kırıklığına uğratabilecek ani zorluk artışlarından kaçının.

Ucuz Atışlardan Kaçınma

Oyuncunun atlatabileceği veya engelleyebileceği saldırılarla düşmanlar tasarlayın ve onlara tepki verme şansı verin. Düşman saldırıları için adil bir isabet kutusu kullanın ve görsel temsillerinin ötesinde isabet eden saldırılardan kaçının. Tehlikeli saldırılara işaret etmek için uyarı işaretleri veya ipuçları kullanın.

Oyun testi ve yineleme

Eğlence faktörlerini ve zorluklarını değerlendirmek için geliştirme sırasında düşman karşılaşmalarını düzenli olarak test edin. Oyunculardan geri bildirim toplayın ve bunu düşman davranışlarına, güçlü ve zayıf yönlerine ince ayar yapmak için kullanın.

Ses efektleri

Ses efektleri, sürükleyici ve büyüleyici bir oyun ortamı yaratmada çok önemli bir rol oynar. Bir düşman isabet aldığında, uygun olanı ekleyin. telif hakkı içermeyen ses efektleri çarpışmada etki ve angajman duygusunu güçlendirmek için.

Oyununuz, saldırı türüne ve düşmanın özelliklerine karşılık gelen farklı ses ipuçlarıyla her vuruşa veya vuruşa eşlik edebilir.

Godot Oyunlarını Düşmanlarla Daha İlgi Çekici Hale Getirmek

Düşmanlar, birçok oyunun temel bir bileşenidir ve yenildiğinde zorluklar, engeller ve bir başarı duygusu sağlar. Farklı davranışlara, sağlık noktalarına ve atış mekaniklerine sahip farklı düşman türleri ekleyerek oyuncular için çeşitli ve ilgi çekici oyun deneyimleri yaratabilirsiniz.

Oyunculara keyifli ve ödüllendirici bir oyun deneyimi sağlamak için zorluğu dengelemeyi, görsel ve işitsel geri bildirim vermeyi ve düşmanlarınızı kapsamlı bir şekilde test etmeyi unutmayın.