Bir sağlık ve hasar sistemi ekleyerek Godot'taki oyun deneyiminizi geliştirin.

Bir sağlık ve hasar sistemi, oyuncuların engellerle veya düşmanlarla karşılaştıklarında hasar almalarına ve sağlık puanları kaybetmelerine olanak tanır. Ayrıca, güçlendirmeler veya sağlık paketleri gibi çeşitli yollarla sağlığı geri kazanmalarını sağlar.

Popüler bir açık kaynaklı oyun motoru olan Godot, bu tür sistemlerin uygulanması için basit ve esnek bir yaklaşım sunar. Oyuncunun sağlığını görsel olarak temsil etmek için bir oyuncu karakteri, bir düşman ve bir sağlık çubuğu ile kolayca bir 2D oyun oluşturabilirsiniz.

Godot Oyununu Kurmak

İlk olarak, temel proje yapısını Godot oyun motoru ve gerekli düğümleri oluşturun.

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

Oyuncu karakteri için yeni bir sahne oluşturun. Ekle KinematikBody2D düğümü ve içine bir ekleyin Çarpışma Şekli2D oyuncunun hitbox'ını temsil eden bir dikdörtgen şekli ile. bir ekle karakter düğüm noktası KinematikBody2D oyuncunun karakterini görüntülemek için.

instagram viewer
# Player.gd
extends KinematicBody2D

const SPEED = 200

var velocity = Vector2.ZERO
var health = 100

func _physics_process(delta):
velocity.x = 0
velocity.y = 0

if Input.is_action_pressed("ui_right"):
velocity.x += SPEED
elif Input.is_action_pressed("ui_left"):
velocity.x -= SPEED

if Input.is_action_pressed("ui_down"):
velocity.y += SPEED
elif Input.is_action_pressed("ui_up"):
velocity.y -= SPEED

move_and_collide(velocity * delta)

Artık Godot projenizde temel bir oyuncu karakteriniz var. Yön tuşlarını kullanarak oyuncuyu hareket ettirebilirsiniz, ancak henüz sağlık sistemi yerinde değil.

Sağlık Çubuğu Kullanıcı Arayüzü Öğelerini Tasarlama

Artık, oyuncunun sağlığını görsel olarak temsil etmek için kullanıcı arabirimi öğeleri ekleyebilirsiniz. Godot adı verilen yerleşik bir kontrol sağlar. Doku İlerlemesi bu amaç için iyi çalışıyor.

HUD (baş üstü ekranı) için yeni bir düğüm oluşturun. Ekle Tuval Katmanı düğümü ve içine bir ekleyin Doku İlerlemesi düğüm. görünümünü özelleştirin Doku İlerlemesi oyununuzun stiline ve temasına göre düğüm.

kullanarak sağlık çubuğunu görüntülemek için Doku İlerlemesi HUD'da ona bir doku atamanız gerekir. Doku İlerlemesi iki doku kullanır: biri arka plan için ve diğeri doldurulmuş kısım (ilerleme) için.

Denetçi panelinde, Doku bölüm. Altında Doku, adlı özellikleri bulacaksınız. Altında Ve Üzerinde. Tıkla Yük düğmesine basın ve ilgili görüntüleri seçin.

Sağlık çubuğunu oyuncunun sağlığına göre güncellemek için HUD sahnesine bir komut dosyası ekleyin:

# HUD.gd
extends CanvasLayer

onready var healthBar := $TextureProgress

func _ready():
update_health_bar()

func update_health_bar():
var hb = get_parent().get_node("KinematicBody2D")
healthBar.value = hb.health

Oyuncu Sağlığını Yönetme

Oyuncunun ekran kenarlığını geçtiğinde sağlığını azaltmak için bir bir if ifadesi kullanarak koşullu kontrol. Oyuncu ekranın dışına çıkarsa sağlığını azaltabilirsiniz. Bunu şu şekilde başarabilirsiniz:

# player.gd
extends KinematicBody2D

const SPEED = 200
const DAMAGE_AMOUNT = 0.1

var velocity = Vector2.ZERO
var health = 100

# Screen boundaries
var screen_size
var margin = 20

func _ready():
screen_size = get_viewport_rect().size

func _physics_process(delta):
#... (existing movement code)
move_and_collide(velocity * delta)

var c1 = position.x < -margin
var c2 = position.x > screen_size.x + margin
var c3 = position.y < -margin
var c4 = position.y > screen_size.y + margin

# Check if the player is outside the screen boundaries
if c1 or c2 or c3 or c4:
take_damage_on_screen_exit()

func take_damage_on_screen_exit():
health -= DAMAGE_AMOUNT
if health <= 0:
health = 0
# Game over logic here

update_health_ui()

Ekle update_health_ui() işlevi oyuncu.gd HUD betiğini çağırmak ve sağlık çubuğunu güncellemek için komut dosyası.

# Player.gd
extends KinematicBody2D

#... (other code)

func update_health_ui():
var hud = get_parent().get_node("HUD")
if hud:
hud.update_health_bar()

Bu değişikliklerle, oyuncu artık ekran sınırını geçtiğinde hasar alacak ve sağlık çubuğu arayüzü buna göre güncellenecektir.

Ek Özellikler Dahil

Sağlık ve hasar sistemi, oyun deneyimini geliştirmek için çeşitli ek özelliklerle genişletilebilir. Bazı fikirler şunları içerir:

Sağlık Manyetikleri

Oyuncunun toplandığında sağlığını geri kazanmasına izin veren sağlık toplamaları uygulayın. Sağlık toplayıcıları, oyun dünyasına dağılmış toplanabilir öğeler veya düşmanları yenmenin ödülleri olabilir.

Oyuncu bir sağlık kazanımı ile etkileşime girdiğinde, sağlığı maksimum değere kadar belirli bir miktarda artmalıdır. Durum toplama öğesi için yeni bir komut dosyası kullanabilir ve çarpışma ve sistem durumu geri yükleme mantığını yönetebilirsiniz.

Yenilmezlik Güçlendirmeleri

Oyuncuya sınırlı bir süre için geçici yenilmezlik sağlayan güçlendirmeler oluşturun. Oyuncu bir yenilmezlik güçlendirmesi topladığında, düşmanlardan veya diğer tehlikelerden gelen hasara karşı bağışık hale gelir.

Yenilmezlik durumunun kalan süresini izlemek için bir zamanlayıcı uygulayın ve zamanlayıcı bittiğinde, oyuncu savunmasız durumuna geri döner.

Farklı Düşman Türleri

Farklı saldırı modellerine, hasar değerlerine ve davranışlarına sahip çeşitli düşmanlar tasarlayın. Her düşman türü, oyuncu için benzersiz zorluklar oluşturabilir ve yenmek için farklı stratejiler gerektirebilir.

Örneğin, bazı düşmanlar daha hızlı hareket edebilir, daha fazla hasar verebilir veya oyuncunun yararlanabileceği belirli zayıf noktaları olabilir. Düşman karşılaşmalarına çeşitlilik eklemek, oyunu ilgi çekici tutar ve monoton hale gelmesini önler.

Sağlık yenilenmesi

Oyuncuları hasardan kaçındıkları için ödüllendirmek için zamanla sağlık yenilemesi uygulayın. Oyuncu belirli bir süre boyunca hasar almadığında, sağlığı kademeli olarak belirli bir eşiğe kadar yenilenir.

Ancak, oyuncunun herhangi bir zorluk yaşamadan sağlığının tamamen iyileşmesini bekleyebileceği durumlardan kaçınmak için yenilenme hızının dengelendiğinden emin olun.

Sesli ve Görsel Geri Bildirim

Oyuncu hasar aldığında, sağlığına kavuştuğunda veya düşmanları yendiğinde etkileyici sesli ve görsel geri bildirim sağlayın.

Etkileyici telif hakkı içermeyen ses efektleri, ekran titremeleri, parçacık efektleri ve görsel ipuçları, oyuncunun oyunun içine dalmasını artırabilir ve sağlık ve hasar sistemini daha dinamik ve ilgi çekici hale getirebilir.

Tanıttığınız ek özelliklerin genel dengesini göz önünde bulundurmayı unutmayın. Oyunun zorlu, eğlenceli ve oyun boyunca iyi tempolu kalmasını sağlamak için oyun testi yapmaya ve geri bildirim toplamaya devam edin.

Sağlık ve Hasar Sistemiyle Godot Oyunlarını Daha İlgi Çekici Hale Getiriyor

Godot oyununuza bir sağlık ve hasar sistemi entegre etmek, oyunu oyuncular için daha ilgi çekici hale getirerek derinlik ve zorluk katar. Oyuncuların oyunda ilerlemek için sağlıklarını etkili bir şekilde stratejilendirmeleri ve yönetmeleri gerektiğinden, bir risk-ödül unsuru sunar.

Ek olarak, sağlık çubuğunun görsel temsili, oyunculara mevcut durumları hakkında önemli geri bildirimler sağlayarak kendilerini kaptırma duygularını geliştirir.