Büyüleyici animasyonlarla Godot oyunlarınız için sürükleyici bir oyun ortamı geliştirin.

Oyun geliştirmede animasyonlar, oyuncular için ilgi çekici ve sürükleyici bir deneyim yaratmada çok önemli bir rol oynar. Godot oyununuza 2B animasyonlar eklemek, karakterlerinizi ve ortamlarınızı canlandırabilir, onları görsel olarak daha çekici ve etkileşimli hale getirebilir.

Neyse ki Godot, 2B animasyonları kolayca oluşturmak ve kontrol etmek için güçlü araçlar ve özellikler sağlar.

Godot Oyununu Kurmak

Başlamak için, temel bir 2B oyun sahnesi oluşturun. Godot oyun motoru. Yeni bir sahne oluşturun ve bir KinematikBody2D oyuncu karakteri olarak düğüm. İçinde KinematikBody2D, ekle Çarpışma Şekli2D oyuncunun çarpışma sınırlarını temsil eden bir dikdörtgen şekli ile.

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

Ek olarak, bir AnimasyonluSprite oyuncunun animasyonlarını işlemek için düğüm. Ayrıca, aşağıdaki giriş eylemlerini kendi sayfanızda eşlediğinizden emin olun. Giriş Haritası:

instagram viewer

Ardından, oynatıcının hareketini kontrol etmek için GDScript kodunu yazın. Aşağıdaki betiği şuna ekleyin: KinematikBody2D düğüm:

 KinematicBody2Dconst SPEED = 200func _physics_process (delta): var hız = Vector2.ZERO ise, Input.is_action_pressed("move_left"): velosite.x -= HIZ ise Input.is_action_pressed("move_right"): hız.x += HIZ, eğer Input.is_action_pressed("move_up"): velosite.y -= HIZ, eğer Input.is_action_pressed("move_down"): velosite.y += HIZ hız = move_and_slide (hız)

Bu komut dosyası, oynatıcı için sabit bir hız ayarlar ve ok tuşlarını veya WASD'yi kullanarak sola, sağa, yukarı ve aşağı hareket etmelerini sağlar.

AnimatedSprite'ta SpriteSheet Ekleme

Şimdi, yapılandırın AnimasyonluSprite animasyonlar için hareketli grafik sayfası kullanmak için. seçin AnimasyonluSprite düğüme gidin ve şuraya gidin: çerçeveler düğümün özellikler sekmesindeki bölüm. Burada, tıklayın Yeni Karakter Çerçeveleri düğme.

Şuna geç: Karakter Çerçeveleri Godot editörünün altında bulunan sekme. İçinde Karakter Çerçeveleri sekmesine tıklayın Yeni Animasyon düğme. gibi animasyonlar oluşturun. yürümek Ve Boşta her animasyona uygun kareler ekleyerek.

Ek olarak, ateş etme, zıplama ve tırmanma gibi başka animasyonlar oluşturma seçeneğiniz de vardır. bir platform oyunu için. Bundan sonra, üzerine tıklayın SpriteSheet'ten Çerçeveler Ekleyin Hareketli grafik sayfasından tek tek kareleri otomatik olarak çıkarmak için düğmesine basın.

GDScript Kullanarak Animasyonları Kontrol Etme

Artık animasyonlarınızı kurduğunuza göre, bunları GDScript kullanarak programlı olarak kontrol edebilirsiniz.

Animasyonu Oynatma ve Durdurma

Oyununuzda dinamik ve etkileşimli deneyimler sağlamak için animasyonların oynatılmasını kontrol etmek çok önemlidir. bu AnimasyonluSprite Godot'taki düğüm, oyun mantığınıza göre animasyonları oynatmak ve durdurmak için yöntemler sunar.

uzatmak KinematikBody2D düğümü ve içindeki animasyon kontrolünü yönetin. _fizik_işlem işlev. kullanabilirsiniz oyun_animasyonu Ve animasyonu durdur karşılık gelen animasyon eylemlerini tetiklemek için girdiler.

 KinematicBody2Dfunc _physics_process (delta) genişletir: # Eğer Input.is_action_just_pressed("play_animation") ise animasyonu oynat: $AnimatedSprite.play() # Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() ise animasyonu durdurun ve ilk kareye sıfırlayın $AnimatedSprite.frame = 0

Uygun girdi eylemlerini eşleyerek, oyunculara oyununuzdaki animasyon oynatma üzerinde kontrol sağlayabilirsiniz.

Örneğin, oyun_animasyonu bir düğmeye basmaya veya oyununuzdaki belirli bir olaya eylem, oyuncunun istenen anda bir animasyon dizisini tetiklemesine izin verir. Ek olarak şunları yapabilirsiniz: telif hakkı olmayan müzik bul animasyon çalışırken oynamak için.

Benzer şekilde, animasyonu durdur animasyonu tamamen durdurmak için eylemler.

Bu animasyon kontrol mekanizmalarını dahil ederek oyununuzun animasyonlarına derinlik ve etkileşim katabilir, oyuncularınız için daha ilgi çekici ve sürükleyici deneyimler yaratabilirsiniz.

Animasyonu Döndürme

Animasyonu döndürmek, oyununuza görsel ilgi ve çeşitlilik katabilir. Programlı olarak döndürebilirsiniz AnimasyonluSprite animasyonun yönünü değiştirmek için düğüm. kullanarak döndürmeyi derece cinsinden uygulayabilirsiniz. döndür() yöntem.

 KinematicBody2Dfunc _physics_process (delta) genişletir: if Input.is_action_just_pressed("rotate_animation"): # Animasyonu saat yönünde 45 derece döndür $AnimatedSprite.rotate (deg2rad (45))

ilgili düğmelere bastığınızda, döndürme_animasyonu (bu eylemi giriş haritanızda tanımlayabilirsiniz), döndür() yöntemi çağrılır AnimasyonluSprite düğüm. kullanarak düğümü saat yönünde 45 derece döndürür. derece2rad() dereceleri radyana dönüştürmek için.

Tümüne rotasyon uygulayacağını unutmayın. AnimasyonluSprite animasyonun tüm kareleri dahil olmak üzere düğüm. Bu nedenle, yalnızca belirli çerçeveleri döndürmek istiyorsanız, bunları ayrı parçalara ayırmanız gerekebilir. AnimasyonluSprite düğümler veya tek tek çerçeveleri çevirmek gibi diğer teknikleri kullanın.

Animasyonu Çevirmek

Animasyonu yatay veya dikey olarak çevirmek, karakter yönündeki değişiklikleri yansıtmak için yararlı olabilir. Godot'ta, AnimasyonluSprite düğüm, çevirmeyi kontrol etmek için özellikler sağlar.

Animasyonu yatay olarak çevirmek için flip_h mülkiyeti AnimasyonluSprite ile doğru. Bu, animasyonu yatay eksen boyunca yansıtacaktır. Benzer şekilde, flip_v mülkiyet doğru animasyonu dikey eksen boyunca yansıtacaktır.

 KinematicBody2Dfunc _physics_process'i (delta) genişletir: if Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # veya $AnimatedSprite.flip_v = dikey çevirme için doğru

oyuncu basarsa flip_animation giriş eylemi, ardından flip_h mülkiyeti AnimasyonluSprite ile doğru. Bu, animasyonu yatay olarak çevirecektir.

AnimatedSprite'ta Sinyalleri Kullanma

Animasyonları programlı olarak kontrol etmenin yanı sıra Godot, sinyaller adı verilen güçlü bir olay sistemi sağlar. Sinyaller, oyununuzun yürütülmesi sırasında meydana gelen belirli olaylara veya değişikliklere yanıt vermenizi sağlar.

Bu durumuda AnimasyonluSprite, kullanabileceğiniz iki önemli sinyal vardır: animasyon_bitmiş() Ve frame_changed().

1. Animation_finished() Sinyali

bu animasyon_bitmiş() animasyon, tek bir oynatma sırasında veya döngüye girdiğinde son kareye ulaştığında sinyal verilir. Bu sinyal, bir animasyon tamamlandığında eylemler gerçekleştirmek veya olayları tetiklemek istediğinizde kullanışlıdır.

 KinematicBody2Dfunc _ready()'yi genişletir: $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished")func _on_animation_finished(): # Eylemleri gerçekleştirin veya olayları tetikleyin print("Animasyon bitti!") # Ek kod burada...

Bağlan animasyon_bitmiş() sinyali AnimasyonluSprite için _on_animation_finished() yöntemini kullanarak aynı komut dosyasında bağlamak() işlev.

Animasyonun oynatılması bittiğinde, özel mantığı yürütebilir veya diğer işlevleri tetikleyebilirsiniz. _on_animation_finished() yöntem.

2. frame_changed() Sinyali

bu frame_changed() animasyonun geçerli karesi her değiştiğinde sinyal verilir. Bu, animasyon oynatılırken veya çerçeveyi programlı olarak değiştirdiğinizde ortaya çıkabilir. Çerçeve değişikliklerini algılamak ve buna göre tepki vermek için bu sinyali kullanabilirsiniz.

 KinematicBody2Dfunc _ready()'yi genişletir: $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # Geçerli çerçeveye göre eylemleri gerçekleştirin var currentFrame = $AnimatedSprite.frame print("Geçerli çerçeve: ", currentFrame) # Ek kod Burada...

Bağlan frame_changed() sinyali AnimasyonluSprite için _on_frame_changed() aynı komut dosyasında yöntem. Çerçeve değiştiğinde, mevcut çerçeveye _on_frame_changed() yöntemini kullanın ve çerçevenin değerine göre eylemler veya mantık gerçekleştirin.

Sinyalleri kullanarak, tamamlama veya çerçeve değişiklikleri gibi animasyon olaylarına yanıt verebilir ve oyununuzda dinamik davranışları dahil edebilir veya belirli eylemleri tetikleyebilirsiniz.

Animasyonları Kullanarak Godot Oyunlarını Daha İlgi Çekici Hale Getirin

Godot oyunlarınıza 2B animasyonlar eklemek, genel oyuncu deneyimini büyük ölçüde geliştirebilir. Animasyonlar karakterlere hayat verir, hareketlerini ve eylemlerini görsel olarak daha çekici hale getirir. Yürüme, koşma, saldırma ve zıplama gibi çeşitli eylemler için animasyonlar ekleyerek dinamik ve sürükleyici bir oyun ortamı oluşturabilirsiniz.

Ayrıca, oynatıcıya görsel geri bildirim sağlamak için animasyonları da kullanabilirsiniz. Bu geri bildirim, oyuncunun kontrol ve katılım duygusunu geliştirerek oyunu daha ilgi çekici ve duyarlı hale getirmeye yardımcı olur.