Kembangkan lingkungan gameplay yang imersif untuk game Godot Anda dengan animasi yang menawan.

Dalam pengembangan game, animasi memainkan peran penting dalam menciptakan pengalaman yang menarik dan imersif bagi para pemain. Menambahkan animasi 2D ke game Godot Anda dapat menghidupkan karakter dan lingkungan Anda, menjadikannya lebih menarik secara visual dan interaktif.

Untungnya, Godot menyediakan alat dan fitur canggih untuk membuat dan mengontrol animasi 2D dengan mudah.

Menyiapkan Game Godot

Untuk memulai, atur adegan permainan 2D dasar di mesin permainan Godot. Buat adegan baru dan tambahkan a KinematikaBody2D simpul sebagai karakter pemain. Di dalam KinematikaBody2D, tambah sebuah TabrakanBentuk2D dengan bentuk persegi panjang yang mewakili batas tabrakan pemain.

Kode yang digunakan dalam artikel ini tersedia di sini repositori GitHub dan gratis untuk Anda gunakan di bawah lisensi MIT.

Selain itu, tambahkan sebuah AnimatedSprite simpul untuk menangani animasi pemain. Selanjutnya, pastikan Anda memetakan tindakan masukan berikut di Peta Masukan:

Selanjutnya, tulis kode GDScript untuk mengontrol pergerakan pemain. Lampirkan skrip berikut ke KinematikaBody2D simpul:

 extends KinematicBody2Dconst SPEED = 200func _physics_process (delta): var kecepatan = Vector2.ZERO jika Input.is_action_pressed("move_left"): velocity.x -= SPEED jika Input.is_action_pressed("move_right"): velocity.x += SPEED jika Input.is_action_pressed("move_up"): velocity.y -= SPEED jika Input.is_action_pressed("move_down"): velocity.y += SPEED kecepatan = gerak_dan_geser (kecepatan)

Skrip ini mengatur kecepatan konstan untuk pemain dan memungkinkan mereka bergerak ke kiri, kanan, atas, dan bawah menggunakan tombol panah atau WASD.

Menambahkan SpriteSheet di AnimatedSprite

Sekarang, konfigurasikan AnimatedSprite untuk menggunakan sprite sheet untuk animasi. Pilih AnimatedSprite simpul dan arahkan ke Bingkai bagian di tab properti node. Di sini, klik pada SpriteFrame Baru tombol.

Beralih ke SpriteFrame tab yang terletak di bagian bawah editor Godot. Dalam SpriteFrame tab, klik pada Animasi Baru tombol. Membuat animasi seperti berjalan Dan menganggur dengan menambahkan bingkai yang sesuai untuk setiap animasi.

Selain itu, Anda memiliki opsi untuk membuat animasi lain, seperti menembak, melompat, dan memanjat untuk game platformer. Setelah itu, klik pada Tambahkan Bingkai dari SpriteSheet tombol untuk secara otomatis mengekstrak frame individual dari sprite sheet.

Mengontrol Animasi Menggunakan GDScript

Sekarang setelah Anda menyiapkan animasi, Anda dapat mengontrolnya secara terprogram menggunakan GDScript.

Memutar dan Menghentikan Animasi

Mengontrol pemutaran animasi sangat penting untuk memberikan pengalaman yang dinamis dan interaktif dalam game Anda. Itu AnimatedSprite node di Godot menawarkan metode untuk memutar dan menghentikan animasi sesuai logika permainan Anda.

Perpanjang KinematikaBody2D node dan menangani kontrol animasi di dalam _fisika_proses fungsi. Anda dapat menggunakan play_animation Dan stop_animation input untuk memicu tindakan animasi yang sesuai.

 extends KinematicBody2Dfunc _physics_process (delta): # Mainkan animasi jika Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # Hentikan animasi dan reset ke frame pertama jika Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0

Dengan memetakan tindakan input yang sesuai, Anda dapat memberi pemain kontrol atas pemutaran animasi di game Anda.

Misalnya, Anda mungkin mengikat file play_animation tindakan untuk menekan tombol atau peristiwa tertentu dalam game Anda, memungkinkan pemain untuk memicu urutan animasi pada saat yang diinginkan. Selain itu, Anda bisa temukan musik bebas hak cipta untuk diputar saat animasi sedang berjalan.

Demikian pula, Anda dapat memicu stop_animation tindakan untuk sepenuhnya menghentikan animasi.

Dengan menggabungkan mekanisme kontrol animasi ini, Anda dapat menambahkan kedalaman dan interaktivitas ke animasi game Anda, menciptakan pengalaman yang lebih menarik dan imersif bagi pemain Anda.

Memutar Animasi

Memutar animasi dapat menambah minat dan variasi visual pada game Anda. Anda dapat memutar secara terprogram AnimatedSprite node untuk mengubah orientasi animasi. Anda dapat menerapkan rotasi dalam derajat menggunakan memutar() metode.

 extends KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("rotate_animation"): # Putar animasi 45 derajat searah jarum jam $AnimatedSprite.rotate (deg2rad (45))

Saat Anda menekan tombol yang terkait dengan rotate_animation (Anda dapat menentukan tindakan ini di peta input Anda), file memutar() metode dipanggil pada AnimatedSprite simpul. Ini memutar node sebesar 45 derajat searah jarum jam menggunakan deg2rad() untuk mengubah derajat menjadi radian.

Perlu diingat bahwa itu akan menerapkan rotasi ke keseluruhan AnimatedSprite simpul, termasuk semua bingkai animasi. Oleh karena itu, jika Anda hanya ingin memutar bingkai tertentu, Anda mungkin perlu membaginya menjadi terpisah AnimatedSprite node atau gunakan teknik lain seperti membalik frame individu.

Membalik Animasi

Membalik animasi secara horizontal atau vertikal dapat berguna untuk mencerminkan perubahan arah karakter. Di Godot, AnimatedSprite node menyediakan properti untuk mengontrol flipping.

Untuk membalik animasi secara horizontal, atur flip_h properti dari AnimatedSprite ke BENAR. Ini akan mencerminkan animasi di sepanjang sumbu horizontal. Demikian pula, pengaturan flip_v properti untuk BENAR akan mencerminkan animasi sepanjang sumbu vertikal.

 memperluas KinematicBody2Dfunc _physics_process (delta): jika Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # atau $AnimatedSprite.flip_v = true untuk pembalikan vertikal

Jika pemain menekan tombol flip_animation masukkan tindakan lalu atur flip_h properti dari AnimatedSprite ke BENAR. Ini akan membalik animasi secara horizontal.

Memanfaatkan Sinyal di AnimatedSprite

Selain mengontrol animasi secara terprogram, Godot menyediakan sistem peristiwa yang kuat yang disebut sinyal. Sinyal memungkinkan Anda merespons peristiwa atau perubahan tertentu yang terjadi selama eksekusi game Anda.

Dalam kasus AnimatedSprite, ada dua sinyal penting yang dapat Anda gunakan: animasi_selesai() Dan bingkai_berubah().

1. animation_finished() Sinyal

Itu animasi_selesai() sinyal dipancarkan saat animasi mencapai bingkai terakhir, baik selama pemutaran tunggal atau saat berulang. Sinyal ini berguna saat Anda ingin melakukan tindakan atau memicu peristiwa saat animasi selesai.

 meluas KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished")func _on_animation_finished(): # Melakukan aksi atau memicu event print("Animation selesai!") # Kode tambahan di sini...

Hubungkan animasi_selesai() sinyal dari AnimatedSprite ke _pada_animasi_selesai() metode dalam skrip yang sama menggunakan Menghubung() fungsi.

Saat animasi selesai diputar, Anda dapat menjalankan logika khusus atau memicu fungsi lain menggunakan _pada_animasi_selesai() metode.

2. frame_changed() Sinyal

Itu bingkai_berubah() sinyal dipancarkan setiap kali bingkai animasi saat ini berubah. Hal ini dapat terjadi saat animasi diputar atau saat Anda memodifikasi bingkai secara terprogram. Anda dapat menggunakan sinyal ini untuk mendeteksi perubahan bingkai dan memberikan reaksi yang sesuai.

 extends KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # Lakukan tindakan berdasarkan frame saat ini var currentFrame = $AnimatedSprite.frame print("Current frame: ", currentFrame) # Kode tambahan Di Sini...

Hubungkan bingkai_berubah() sinyal dari AnimatedSprite ke _on_frame_changed() metode dalam skrip yang sama. Saat bingkai berubah, Anda dapat mengakses bingkai saat ini menggunakan _on_frame_changed() metode dan melakukan tindakan atau logika berdasarkan nilai frame.

Dengan memanfaatkan sinyal, Anda dapat merespons peristiwa animasi seperti penyelesaian atau perubahan bingkai dan menggabungkan perilaku dinamis atau memicu tindakan tertentu dalam game Anda.

Jadikan Game Godot Lebih Menarik Menggunakan Animasi

Menambahkan animasi 2D ke game Godot Anda dapat meningkatkan pengalaman pemain secara keseluruhan. Animasi menghidupkan karakter, membuat gerakan dan tindakan mereka lebih menarik secara visual. Dengan memasukkan animasi untuk berbagai aksi seperti berjalan, berlari, menyerang, dan melompat, Anda dapat menciptakan lingkungan permainan yang dinamis dan imersif.

Selain itu, Anda juga dapat menggunakan animasi untuk memberikan umpan balik visual kepada pemain. Umpan balik ini membantu membuat game lebih menarik dan responsif, meningkatkan rasa kontrol dan keterlibatan pemain.