Inilah cara Anda dapat menambahkan level ke game Anda agar lebih menarik dan menyenangkan.
Level adalah aspek penting dari sebagian besar video game. Mereka memberikan struktur, tantangan, dan variasi, dan dapat meningkatkan pengalaman pemain secara signifikan. PyGame, pustaka Python populer untuk pengembangan game, menyediakan berbagai fitur yang dapat digunakan untuk membuat berbagai level dengan mudah. Level yang dirancang dengan baik dapat memikat pemain, menciptakan rasa kemajuan, dan pada akhirnya memberi penghargaan atas upaya mereka.
Tingkat Perencanaan dan Perancangan
Sebelum membuat level, penting untuk merencanakan dan mendesainnya. Level perencanaan membantu dalam menciptakan game yang terstruktur dengan baik yang memberikan tingkat kesulitan yang tepat bagi para pemain. Untuk merencanakan level, Anda perlu mempertimbangkan berbagai faktor seperti mekanisme game, cerita, dan keseluruhan struktur game.
Misalnya, jika Anda mendesain game platformer, Anda perlu memikirkan penempatan platform, musuh, dan rintangan. Anda juga perlu mempertimbangkan pergerakan pemain, seperti melompat dan berlari, dan merancang level yang sesuai.
Kode yang digunakan dalam artikel ini tersedia di sini repositori GitHub dan gratis untuk Anda gunakan di bawah lisensi MIT.
Membuat Dua Tingkat Sederhana
Sebelum memulai, pastikan Anda sudah pip diinstal pada sistem Anda. Gunakan perintah ini untuk menginstal pygame perpustakaan:
pip instal pygame
Sekarang, buat dua level sederhana dengan platform dan pemain. Berikut kode untuk level pertama:
impor pygame
pygame.init()
# Tentukan konstanta
SCREEN_WIDTH = 800
LAYAR_TINGGI = 600
PLATFORM_WIDTH = 100
PLATFORM_HEIGHT = 20
PEMAIN_WIDTH = 50
PEMAIN_TINGGI = 50
PLATFORM_COLOR = (255, 255, 255)
PEMAIN_WARNA = (255, 0, 0)# Buat layar
layar = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))# Buat platformnya
platform = pygame. Persegi panjang(350, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)# Buat pemain
pemain = pygame. Persegi panjang(375, 450, PLAYER_WIDTH, PLAYER_HEIGHT)# Putaran permainan
berlari = BENAR
ketika berlari:
untuk peristiwa di dalam pygame.event.get():
jika event.type == pygame. BERHENTI:
berlari = PALSU
elif event.type == pygame. TURUNKAN:
jika event.key == pygame. K_LEFT:
pemain.move_ip(-10, 0)
elif event.key == pygame. K_KANAN:
pemain.move_ip(10, 0)# Isi layar dengan warna hitam
layar.isi((0, 0, 0))# Gambar platformnya
pygame.draw.rect (layar, PLATFORM_COLOR, platform)# Gambar pemainnya
pygame.draw.rect (layar, PLAYER_COLOR, pemain)# Perbarui layar
pygame.display.flip()
pygame.berhenti()
Setelah itu, buat level kedua hanya dengan mengubah platform dan posisi pemain. Berikut kode untuk level kedua:
impor pygame
pygame.init()
# Tentukan konstanta
SCREEN_WIDTH = 800
LAYAR_TINGGI = 600
PLATFORM_WIDTH = 150
PLATFORM_HEIGHT = 20
PEMAIN_WIDTH = 50
PEMAIN_TINGGI = 50
PLATFORM_COLOR = (255, 255, 255)
PEMAIN_WARNA = (255, 0, 0)# Buat layar
layar = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))# Buat platformnya
platform = pygame. Persegi panjang(200, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)# Buat pemain
pemain = pygame. Persegi panjang(225, 450, PLAYER_WIDTH, PLAYER_HEIGHT)# Putaran permainan
berlari = BENAR
ketika berlari:
untuk peristiwa di dalam pygame.event.get():
jika event.type == pygame. BERHENTI:
berlari = PALSU
elif event.type == pygame. TURUNKAN:
jika event.key == pygame. K_LEFT:
pemain.move_ip(-10, 0)
elif event.key == pygame. K_KANAN:
pemain.move_ip(10, 0)# Isi layar dengan warna hitam
layar.isi((0, 0, 0))# Gambar platformnya
pygame.draw.rect (layar, PLATFORM_COLOR, platform)# Gambar pemainnya
pygame.draw.rect (layar, PLAYER_COLOR, pemain)# Perbarui layar
pygame.display.flip()
pygame.berhenti()
Kode ini mirip dengan level pertama, tetapi platform dan posisi pemain diubah.
Menghubungkan Berbagai Tingkat
Untuk menghubungkan level yang berbeda, Anda perlu memodifikasi loop game untuk beralih antar level saat pemain menyelesaikan level. Anda dapat melakukan ini dengan membuat variabel untuk melacak level saat ini dan menggunakan pernyataan bersyarat untuk beralih antar level. Anda juga bisa mendeteksi tabrakan untuk diperiksa jika pemain telah mencapai akhir level.
Inilah loop game yang dimodifikasi:
tingkat_saat ini = 1
# Gambar platform dan pemain berdasarkan level saat ini
jika tingkat_saat ini == 1:
pygame.draw.rect (layar, PLATFORM_COLOR, platform1)
pygame.draw.rect (layar, PLAYER_COLOR, pemain)
# Periksa apakah pemain telah mencapai akhir level
jika player.colliderect (platform1) == PALSU:
tingkat_saat ini = 2
elif tingkat_saat ini == 2:
pygame.draw.rect (layar, PLATFORM_COLOR, platform2)
pygame.draw.rect (layar, PLAYER_COLOR, pemain)
# Periksa apakah pemain telah mencapai akhir level
jika player.colliderect (platform2) == BENAR:
berlari = PALSU
Berbagi Data Game Antar Level
Anda perlu menyimpan data game untuk membagikannya di antara level. Untuk itu, buat modul Python terpisah untuk menyimpan data game dan mengimpornya ke setiap level.
Berikut langkah-langkahnya:
- Buat modul Python baru bernama game_data.py.
- Tentukan variabel global di game_data.py modul untuk menyimpan posisi pemain.
- Di setiap level, impor file game_data modul.
- Untuk mengambil posisi pemain di setiap level, gunakan game_data.player_pos variabel alih-alih membuat objek pemain baru.
- Untuk memperbarui posisi pemain, ubah nilainya game_data.player_pos dalam setiap iterasi.
Berikut kode yang dimodifikasi untuk berbagi posisi pemain antar level.
Dalam game_data.py modul, tambahkan kode berikut:
pemain_pos = (0, 0)
Tingkat pertama:
impor pygame
impor game_data# Buat pemain
pemain = pygame. Rect (game_data.player_pos[0], game_data.player_pos[1], PLAYER_WIDTH, PLAYER_HEIGHT)# Putaran permainan
berlari = BENAR
ketika berlari:
# Gambar pemainnya
pygame.draw.rect (layar, PLAYER_COLOR, pemain)
# Perbarui posisi pemain di modul game_data
game_data.player_pos = (pemain.x, pemain.y)
Jadikan Game Lebih Menarik Dengan Level
Menambahkan level yang berbeda ke game Anda dapat membuatnya lebih menarik dan menyenangkan bagi pemain. Dengan menghubungkan level dan berbagi data game, Anda dapat menciptakan pengalaman bermain game yang mulus dan kohesif. Ini dapat membantu pemain tetap tenggelam dalam dunia game dan mengurangi kemungkinan pelepasan atau kebosanan.