Proyek Pygame tanpa animasi bisa sangat membosankan. Tingkatkan daya tarik game Anda dengan menggabungkan animasi yang menawan.

Animasi adalah aspek penting dalam pengembangan game yang menghidupkan dan dinamisme pada kreasi Anda. Dengan menggabungkan animasi, Anda dapat membuat visual yang menawan dan pengalaman gameplay yang imersif untuk pemain Anda.

Pygame menyediakan seperangkat alat lengkap yang menyederhanakan proses pembuatan animasi. Ini menyediakan fitur bawaan termasuk memuat dan menampilkan bingkai, mengontrol animasi dengan masukan pemain, dan sebagainya.

Buat Game Sederhana

Mulailah dengan membuat game sederhana yang memungkinkan pemain bergerak ke kiri dan ke kanan. Anda juga dapat menambahkan platform ke dalam game.

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

Buat berkas baru simple-game.py dan tentukan beberapa variabel, termasuk posisi awal dan kecepatan pemain dan platform. Variabel ini akan digunakan untuk mengontrol pergerakan sprite pemain.

instagram viewer

Tangani input pemutar dengan mengambil status keyboard menggunakan pygame.key.get_pressed(). Jika tombol panah kiri ditekan, Anda dapat menurunkan nilai dari pemain_x, dan jika tombol panah kanan ditekan, Anda dapat memperbesarnya. Ini menciptakan efek gerakan untuk sprite pemain.

Game awal Anda akan terlihat seperti berikut:

Memuat dan Menampilkan Bingkai

Untuk membuat animasi, memuat dan menampilkan gambar yang berbeda atau bingkai animasi. Setiap frame mewakili gambar atau sprite tertentu yang akan ditampilkan secara berurutan untuk memberikan ilusi gerak. Anggaplah Anda memiliki tiga bingkai: bingkai0, bingkai1, Dan bingkai2. Awalnya, Anda dapat menampilkan bingkai0.

Buat file baru bernama animate.py dan tambahkan kode dengan pembaruan di bawah ini:


# Muat bingkai
frame0 = pygame. Permukaan((20, 20))
bingkai0.isi((255, 0, 0))

frame1 = pygame. Permukaan((20, 20))
bingkai1.isi((0, 255, 0))

frame2 = pygame. Permukaan((20, 20))
bingkai2.isi((0, 0, 255))

# Tetapkan bingkai awal
bingkai_arus = bingkai0

# Putaran permainan
ketika berlari:
# ...

# Render game
# ...
screen.blit (current_frame, (player_x, player_y))

pygame.display.flip()

# ...

Mengontrol Animasi Dengan Input Pemain

Untuk menganimasikan sprite pemain, Anda dapat beralih di antara bingkai yang berbeda berdasarkan input pemain. Misalnya, saat pemain bergerak ke kiri atau kanan menggunakan tombol panah, Anda dapat beralih di antara bingkai untuk menciptakan ilusi gerakan.

# Putaran permainan
ketika berlari:
# ...

# Tangani masukan pemain
kunci = pygame.key.get_pressed()
jika kunci[pygame. K_LEFT]:
player_x -= kecepatan_pemain
bingkai_arus = bingkai1
elif kunci[pygame. K_KANAN]:
player_x += kecepatan_pemain
bingkai_arus = bingkai2
kalau tidak:
bingkai_arus = bingkai0

# Render game
# ...
screen.blit (current_frame, (player_x, player_y))

pygame.display.flip()

# ...

Di bawah ini adalah outputnya:

Termasuk Fitur Tambahan

Selain fungsi animasi dasar, Pygame menawarkan beberapa fitur tambahan untuk meningkatkan pengalaman pengembangan game Anda.

Lembar Sprite

Alih-alih memuat bingkai satu per satu, Anda dapat menggunakan lembar sprite yang berisi banyak bingkai dalam satu gambar. Pygame menyediakan fungsi untuk mengekstrak dan menampilkan wilayah tertentu dari sprite sheet. Berikut contohnya:

# Muat gambar sprite sheet
sprite_sheet = pygame.image.load("spritesheet.png")

# Tentukan dimensi setiap bingkai
lebar_bingkai = 32
bingkai_tinggi = 32

# Berfungsi untuk mengekstrak bingkai dari sprite sheet
defextract_frames(lembar, lebar_bingkai, tinggi_bingkai):
# kode untuk mengekstrak bingkai

# Ekstrak bingkai dari sprite sheet
bingkai = ekstrak_bingkai (sprite_sheet, lebar_bingkai, tinggi_bingkai)

# Tampilkan bingkai dari sprite sheet
bingkai_arus = bingkai[0]

# Putaran permainan
ketika berlari:
# ...
screen.blit (current_frame, (player_x, player_y))
# ...

Kecepatan animasi

Anda dapat mengontrol kecepatan animasi Anda dengan memperkenalkan penundaan waktu di antara pembaruan bingkai. Ini memungkinkan gerakan halus dan realistis. Berikut adalah contoh bagaimana Anda dapat mengontrol kecepatan animasi menggunakan waktu modul:

# Variabel kecepatan animasi
animasi_penundaan = 100# Penundaan dalam milidetik antara pembaruan bingkai
last_frame_time = pygame.time.get_ticks()

# Putaran permainan
ketika berlari:
# ...

# Periksa apakah cukup waktu telah berlalu untuk memperbarui bingkai
saat_waktu = pygame.waktu.get_ticks()
jika waktu_terkini - waktu_bingkai_terakhir >= penundaan_animasi:
# Perbarui bingkai

# Render game
# ...
screen.blit (current_frame, (player_x, player_y))

pygame.display.flip()

Deteksi Tabrakan

Pygame menawarkan fungsi deteksi tabrakan untuk mendeteksi interaksi antara objek animasi, seperti mendeteksi saat pemain bertabrakan dengan platform. Berikut adalah contoh cara memasukkan deteksi tabrakan ke dalam game Anda:

# Deteksi tabrakan
defcheck_collision(player_rect, platform_rect):
jika player_rect.colliderect (platform_rect):
# Tabrakan terjadi
kembaliBENAR
kalau tidak:
kembaliPALSU

# Putaran permainan
ketika berlari:
# ...

# Lakukan deteksi tabrakan
player_rect = pygame. Kotak (player_x, player_y, 20, 20)
platform_rect = pygame. Rect (platform_x, platform_y,
platform_width, platform_height)

jika check_collision (player_rect, platform_rect):
# Tangani benturan

# Render game
# ...
screen.blit (current_frame, (player_x, player_y))

pygame.display.flip()

Dengan memanfaatkan fitur tambahan ini, Anda dapat memperluas kemampuan pengembangan game dan menciptakan pengalaman bermain game yang lebih dinamis dan imersif. Bereksperimenlah dengan berbagai teknik, gabungkan secara kreatif, dan biarkan imajinasi Anda memandu Anda dalam membuat game yang benar-benar menarik.

Praktik Terbaik untuk Membuat Animasi di Pygame

Saat menambahkan animasi ke proyek Pygame Anda, penting untuk mengikuti beberapa praktik terbaik untuk mengoptimalkan implementasi Anda dan memastikan animasi yang halus dan efisien. Pertimbangkan pedoman berikut:

Pramuat dan Simpan Bingkai di Memori

Memuat gambar dari disk selama putaran permainan dapat menyebabkan penundaan dan memengaruhi kinerja. Untuk menghindarinya, pramuat bingkai Anda dan simpan di memori sebelum putaran permainan dimulai. Dengan cara ini, Anda dapat dengan cepat mengakses dan menampilkan bingkai selama runtime tanpa overhead I/O disk apa pun.

Manfaatkan Kelas Sprite dan Animasi Bawaan Pygame

Pygame menyediakan kelas bawaan seperti pygame.sprite. Sprite Dan pygame.sprite. Kelompok yang menyederhanakan pengelolaan sprite dan animasi. Dengan memanfaatkan kelas-kelas ini, Anda dapat menangani deteksi tabrakan, pembaruan grup, dan rendering dengan lebih efisien.

Optimalkan Format Gambar

Pertimbangkan untuk mengoptimalkan format gambar Anda untuk kinerja yang lebih baik. Pygame mendukung berbagai format gambar, termasuk PNG dan JPEG. PNG umumnya direkomendasikan untuk gambar dengan transparansi, sedangkan JPEG cocok untuk gambar statis tanpa transparansi.

Bereksperimenlah dengan berbagai format gambar dan tingkat kompresi untuk menemukan keseimbangan optimal antara kualitas gambar dan ukuran file.

Gunakan Frame Rate yang Tepat

Untuk mencapai animasi yang halus, penting untuk mengatur frekuensi gambar yang sesuai. Pygame menyediakan pygame.time. Jam kelas, yang membantu mengontrol laju bingkai dengan mengatur kecepatan loop game.

Dengan memanggil kutu() metode objek Jam di akhir setiap iterasi, Anda dapat mempertahankan frekuensi gambar yang konsisten. Sesuaikan frekuensi gambar berdasarkan kompleksitas animasi Anda dan kemampuan kinerja platform target Anda.

Dengan mengikuti praktik terbaik ini, Anda dapat mengoptimalkan penerapan animasi, meningkatkan performa game, dan menciptakan pengalaman visual yang menarik dan menarik bagi pemain Anda.

Jadikan Game Lebih Menyenangkan Dengan Animasi

Menambahkan animasi ke game Anda dapat sangat meningkatkan pengalaman pemain secara keseluruhan. Animasi menghidupkan karakter dan objek, membuat gerakan lebih halus dan lebih menarik. Baik itu karakter yang melompat, musuh yang menyerang, atau interaksi objek, animasi membuat dunia game Anda lebih imersif dan menarik secara visual.

Dengan memanfaatkan kemampuan animasi Pygame, Anda dapat memikat pemain dan membuat game yang meninggalkan kesan abadi.