Oyuncu hareketi, Godot oyunlarını daha ilgi çekici hale getirmede çok önemli bir rol oynar. Nasıl uygulayacağınızı öğrenin.
Oyuncu hareketini uygulamak, Godot Game Engine'de ilgi çekici oyunlar yaratmanın temel bir yönüdür. Oyuncu hareketi, kullanıcıların karakterleri kontrol etmesine, oyun dünyalarını keşfetmesine ve oyun ortamındaki çeşitli öğelerle etkileşime girmesine olanak tanır.
Godot Oyununu Kurmak
Başlamak için, içinde yeni bir 2B proje oluşturun. Godot Oyun Motoru. Ardından, oyununuza oyuncu hareketi eklemek için şu adımları izleyin.
üzerine sağ tıklayarak yeni bir sahne oluşturun. Dosya sistemi paneli, ardından seçerek Yeni dosya ve onu isimlendirmek sahneler. İçinde sahneler klasörüne sağ tıklayın ve yeni bir 2B sahne oluşturun. Uygun bir adla kaydedin, örn. Player.tscn.
Bu makalede kullanılan kod bu makalede mevcuttur. GitHub deposu ve MIT lisansı altında ücretsiz olarak kullanabilirsiniz.
Ekle KarakterBody2D düğmesine tıklayarak sahneye gidin. Düğüm Ekle düğme ve seçim KarakterBody2D düğüm kitaplığından.
İle KarakterBody2D düğüm seçildi, tıklayın Alt Düğüm Ekle eklemek için düğme Çarpışma Şekli2D. Şeklini ayarlayın Çarpışma Şekli2D oyuncunun boyutlarına uyacak şekilde. Basitlik için bir dikdörtgen şekli kullanabilirsiniz.
Sonra, bir ekleyin Sprite2D bileşeni KarakterBody2D düğümü açın ve oyuncu karakteriniz için uygun bir karakter seçin.
Klavye Girişini Kullanarak Oyuncu Hareketi Ekleme
Artık klavye girişini kullanarak oyuncu hareketi ekleyebilirsiniz. Oyuncu.gd senaryo.
uzatmak KarakterBody2D düğüm, hareket hızını ayarlayın ve ok tuşlarından (ui_left, ui_right, ui_up, ui_down) girişi alın. Giriş yönüne göre hareket hızını hesaplayın, normalleştirin ve ardından oynatıcıyı kullanarak hareket ettirin. hareket_ve_collide işlevi _fizik_işlem yöntem.
extends CharacterBody2D
var speed = 300
func _physics_process(delta):
var input_dir = Vector2.ZERO
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)
Rotasyon Ekleme
Oyuncunun hareket yönüne bakmasını sağlamak için oynatıcınıza dönüş ekleyebilirsiniz. güncelle Oyuncu.gd komut dosyası aşağıdaki gibidir:
extends CharacterBody2D
@export var speed = 400
@export var rotation_speed = 1.5var rotation_direction = 0
func get_input():
rotation_direction = Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left")
velocity = transform.x * (Input.get_action_strength("ui_up") - Input.get_action_strength("ui_down")) * speed
func _physics_process(delta):
get_input()
rotation += rotation_direction * rotation_speed * delta
move_and_slide()
Oyuncu hareket yönünde dönecektir. Dönüş hızı kullanılarak ayarlanabilir dönme hızı değişken.
Fare Girişini Kullanarak Oyuncu Hareketi Ekleme
Artık, oynatıcıyı fare tıklaması konumuna getirmek veya oynatıcının yüzünü fare işaretçisine çevirmek için fare girişini kullanarak oynatıcı hareketini uygulayabilirsiniz:
extends CharacterBody2D
@export var speed = 300
func _physics_process(delta):
if Input.is_action_just_pressed("click"):
var target_position = get_global_mouse_position()
var direction = (target_position - global_position).normalized()
velocity = direction * speed * delta
move_and_collide(velocity)
Bu kodda, oyuncu farenin tıklatıldığı konuma doğru hareket edecektir. tıklamak eylem tetiklenir. Oyuncunun hızı kullanılarak kontrol edilebilir hız değişken.
Ek olarak, fare tabanlı döndürmeyi aşağıdaki gibi de uygulayabilirsiniz:
extends CharacterBody2D
func _physics_process(delta):
var mouse_position = get_global_mouse_position()
var target_direction = (mouse_position - global_position).angle()
rotation = target_direction
Bu versiyonda, oyuncunun karakteri doğrudan fare işaretçisinin konumuna bakacaktır.
Ek Özellikler Dahil
Çoğu oyun için temel oyuncu hareketi gerekli olsa da, ek özellikler eklemek oyuncunuzun deneyimini bir sonraki seviyeye taşıyabilir. Oyuncu hareketini geliştirmek için oyununuzda uygulamayı düşünebileceğiniz bazı heyecan verici özellikler şunlardır:
Atlama
Zıplama mekaniğini uygulamak oyuncuların engelleri aşmasına, daha yüksek platformlara ulaşmasına ve oyun dünyasına ekstra bir etkileşim katmanı eklemesine olanak tanır. Zıplama yüksekliğini kontrol edebilir ve görsel olarak çekici hale getirmek için animasyonlar ekleyebilirsiniz.
Dash veya Sprint
Atılma yeteneği, oyuncunun düşmanlardan kaçmak veya zorlu alanları geçmek için yararlı olabilecek kısa bir patlama için hızlı hareket etmesine olanak tanır. Bu özellik, oyuna dinamik bir öğe ekler ve oyuncunun kontrol duygusunu geliştirir.
Duvara Sürme ve Tırmanma
Duvarda kayma ve tırmanma mekaniğinin tanıtılması, oyuncuların dikey yüzeylerle etkileşime girmesini sağlar. Oyuncular duvarlardan aşağı kayabilir, duvardan atlayabilir ve hatta belirli engelleri aşabilir. Bu özellik özellikle platform oyunlarında popülerdir.
Platform Mekaniği
platform oyunları için, pürüzsüz ve gerçekçi bir hareket deneyimi oluşturmak için yerçekimi, hızlanma ve yavaşlamayı birleştirebilirsiniz. Bu mekaniğe ince ayar yapmak oyunu daha gösterişli ve eğlenceli hissettirebilir.
Unutmayın, ek özellikleri başarılı bir şekilde uygulamanın anahtarı, bunları dengede tutmakta ve sorunsuz bir şekilde oyuna entegre etmekte yatmaktadır. Her özellik, temel oyuncu hareket mekaniğini tamamlamalı ve genel oyun deneyimine katkıda bulunmalıdır.
Oyuncu Hareketi Eklemek İçin En İyi Uygulamalar
Godot oyununuzda oyuncu hareketini uygulamaya gelince, bu en iyi uygulamaları takip edin sadece kodunuzu daha temiz ve daha verimli hale getirmekle kalmayacak, aynı zamanda daha iyi bir oyuncuya da katkıda bulunacaktır. deneyim:
Ayrı Endişeler
Oyuncu hareket mantığınızı ayrı işlevler veya komut dosyaları halinde düzenleyin. Örneğin, oyuncu girişini işlemek için bir komut dosyası, karakter hareketi için başka bir komut dosyası ve muhtemelen animasyonları işlemek için bir komut dosyası oluşturun.
Endişeleri ayırmak, kodunuzu daha modüler ve bakımı kolay hale getirir ve ekip üyeleri arasında daha iyi işbirliğini teşvik eder.
Fark Süresini Kullan
Hareketi hesaplarken, farklı kare hızlarında sorunsuz hareket sağlamak için değerlerinizi her zaman delta süresiyle (delta) çarpın. Delta süresi, son kareden bu yana geçen süreyi temsil eder ve cihazın performansından bağımsız olarak oynatıcının tutarlı bir hızda hareket etmesini sağlar.
Hareket Hızını Sınırla
İstenmeyen yüksek hızlı hareketlerden kaçınmak için oynatıcınız için maksimum hareket hızlarını ayarlayın. Bu sınırlama, oyuncuların oyunun fiziğini bozmalarını veya çarpışma algılamayla ilgili sorunlarla karşılaşmalarını önlemede yararlı olabilir.
Fizik Katmanlarını ve Çarpışma Maskelerini Düşünün
Godot, oyununuzdaki farklı nesneler için çarpışma katmanları ve maskeleri yapılandırmanıza olanak tanır. Bu katmanları ve maskeleri doğru şekilde ayarlamak, hareket sırasında hangi nesnelerin birbiriyle etkileşime girebileceğini kontrol etmenizi sağlar. Örneğin, oynatıcının katı nesnelerle çarpışmasını ancak katı olmayan nesnelerin içinden geçmemesini isteyebilirsiniz.
Görsel ve Sesli Geri Bildirim Ekleyin
Hareket sırasında oyunculara geri bildirim sağlamak için görsel efektler ve ses ipuçları uygulayın. Örneğin, oyuncu koşarken veya ayak sesleri duyarken toz parçacıkları eklemek, oyunun içine daldırma ve katılım hissini artırabilir.
Godot Oyunlarını Oyuncu Hareketiyle Daha İlgi Çekici Hale Getirmek
Akıcı ve duyarlı hareket mekaniği, genel oyuncu deneyimini önemli ölçüde iyileştirebilir. İster uçsuz bucaksız bir dünyayı keşfediyor, ister düşmanlardan kaçıyor veya bulmacaları çözüyor olsun, akıcı oyuncu hareketi oyunun içine dalmayı artırır ve oyuncuların oyuna bağlanmasını sağlar.
GDScript ve CharacterBody2D düğümünü kullanarak oyuncu hareketini uygulayarak, dinamik ve eğlenceli oyun deneyimleri oluşturabilirsiniz. Serbestçe hareket etme ve oyun dünyasıyla etkileşime girme yeteneği, oyuncuları güçlendirir ve sanal ortama bağlı hissetmelerini sağlar.