Cara Membuat Game Snake Klasik dengan Python dan Pygame (Tutorial Lengkap untuk Pemula)
PythonCode ID - Selamat datang kembali di PythonCodeID- Siapa yang tidak kenal dengan game Snake? Game legendaris yang pernah merajai ponsel Nokia ini ternyata tidak serumit kelihatannya untuk dibuat. Jika Anda sedang belajar coding dan ingin membuat game pertama Anda, inilah proyek yang tepat, ikuti ulasannya di blog PythonCodeID ini.
Dalam tutorial lengkap ini, kita akan membahas tuntas cara membuat game Snake klasik dari nol menggunakan Python dan library super seru bernama Pygame. Tutorial ini dirancang khusus untuk pemula, jadi setiap langkah akan dijelaskan secara sederhana. Mari kita mulai! 🐍
 |
Cara Membuat Game Snake Klasik dengan Python |
Mengapa Membuat Game Snake?
Membuat game Snake adalah cara terbaik untuk memahami konsep fundamental dalam pengembangan game, seperti:
- Game Loop: Jantung dari setiap game yang terus berjalan.
- Event Handling: Mengelola input dari pemain (seperti menekan tombol panah).
- Collision Detection: Mendeteksi saat ular menabrak dinding atau dirinya sendiri.
- Logika Game: Mengatur skor, makanan, dan pertumbuhan ular.
Langkah 1: Persiapan Awal (Instalasi Pygame)
Sebelum kita mulai coding, pastikan Python sudah terinstal di komputermu. Setelah itu, kita hanya perlu menginstal satu library saja, yaitu Pygame.
Buka terminal atau Command Prompt, lalu ketik perintah sederhana ini:
pip install pygame
Hanya itu! Sekarang kita sudah siap untuk membuat game.
Langkah 2: Membedah Logika Game Snake
Secara garis besar, game kita akan memiliki beberapa komponen utama:
- Layar Game: Sebuah jendela hitam sebagai arena permainan.
- Ular (Snake): Karakter utama yang kita kendalikan, digambar sebagai rangkaian kotak hijau.
- Makanan (Food): Sebuah kotak merah yang muncul acak. Jika dimakan, ular akan bertambah panjang.
- Skor: Angka yang terus bertambah setiap kali ular memakan makanan.
Logika ini akan kita tuangkan ke dalam kode Python.
Langkah 3: Kode Lengkap Game Snake dengan Python dan Pygame
Inilah saatnya! Berikut adalah kode utuh untuk game Snake klasik. Kode ini sudah dilengkapi dengan komentar untuk membantumu memahami setiap barisnya. Cukup salin dan tempel ke dalam file snake_game.py
.
import pygame
import time
import random
# Inisialisasi Pygame
pygame.init()
# Definisi Warna (R, G, B)
putih = (255, 255, 255)
kuning = (255, 255, 102)
hitam = (0, 0, 0)
merah = (213, 50, 80)
hijau = (0, 255, 0)
biru = (50, 153, 213)
# Ukuran Layar
lebar_layar = 600
tinggi_layar = 400
# Membuat Jendela Game dan Judulnya
layar = pygame.display.set_mode((lebar_layar, tinggi_layar))
pygame.display.set_caption('Game Ular Klasik')
# Kontrol Kecepatan/Frame Rate Game
jam = pygame.time.Clock()
# Properti Ular dan Makanan
ukuran_blok = 10
kecepatan_ular = 15
# Definisi Font untuk Teks
font_style = pygame.font.SysFont("bahnschrift", 25)
score_font = pygame.font.SysFont("comicsansms", 35)
# Fungsi untuk menampilkan skor
def tampilkan_skor(skor):
nilai = score_font.render("Skor: " + str(skor), True, kuning)
layar.blit(nilai, [0, 0])
# Fungsi untuk menggambar ular
def gambar_ular(ukuran_blok, list_ular):
for x in list_ular:
pygame.draw.rect(layar, hijau, [x[0], x[1], ukuran_blok, ukuran_blok])
# Fungsi untuk menampilkan pesan teks di layar
def tampilkan_pesan(msg, warna):
pesan = font_style.render(msg, True, warna)
# Menempatkan pesan di tengah layar
layar.blit(pesan, [lebar_layar / 6, tinggi_layar / 3])
# Fungsi utama yang menjalankan seluruh game
def gameLoop():
game_over = False
game_close = False
# Posisi awal ular di tengah layar
x1 = lebar_layar / 2
y1 = tinggi_layar / 2
# Variabel untuk menampung perubahan posisi ular
x1_change = 0
y1_change = 0
# List untuk menyimpan koordinat setiap segmen tubuh ular
list_ular = []
panjang_ular = 1
# Menentukan posisi acak pertama untuk makanan
makanan_x = round(random.randrange(0, lebar_layar - ukuran_blok) / 10.0) * 10.0
makanan_y = round(random.randrange(0, tinggi_layar - ukuran_blok) / 10.0) * 10.0
# Game loop utama
while not game_over:
# Loop yang berjalan saat game berakhir (menunggu input pemain)
while game_close == True:
layar.fill(biru)
tampilkan_pesan("Kamu Kalah! Tekan 'Q' Keluar atau 'C' Main Lagi", merah)
tampilkan_skor(panjang_ular - 1)
pygame.display.update()
# Mengecek input untuk keluar atau main lagi
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_q:
game_over = True
game_close = False
if event.key == pygame.K_c:
gameLoop() # Memanggil fungsi ini lagi untuk restart
# Meng-handle input dari pemain untuk menggerakkan ular
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x1_change = -ukuran_blok
y1_change = 0
elif event.key == pygame.K_RIGHT:
x1_change = ukuran_blok
y1_change = 0
elif event.key == pygame.K_UP:
y1_change = -ukuran_blok
x1_change = 0
elif event.key == pygame.K_DOWN:
y1_change = ukuran_blok
x1_change = 0
# Mengecek jika ular menabrak dinding
if x1 >= lebar_layar or x1 < 0 or y1 >= tinggi_layar or y1 < 0:
game_close = True
# Memperbarui posisi kepala ular
x1 += x1_change
y1 += y1_change
# Menggambar latar belakang dan makanan
layar.fill(hitam)
pygame.draw.rect(layar, merah, [makanan_x, makanan_y, ukuran_blok, ukuran_blok])
# Logika untuk pertumbuhan tubuh ular
kepala_ular = []
kepala_ular.append(x1)
kepala_ular.append(y1)
list_ular.append(kepala_ular)
if len(list_ular) > panjang_ular:
del list_ular[0]
# Mengecek jika ular menabrak dirinya sendiri
for x in list_ular[:-1]:
if x == kepala_ular:
game_close = True
# Menggambar ular dan skor ke layar
gambar_ular(ukuran_blok, list_ular)
tampilkan_skor(panjang_ular - 1)
# Memperbarui seluruh tampilan layar
pygame.display.update()
# Mengecek jika ular memakan makanan
if x1 == makanan_x and y1 == makanan_y:
makanan_x = round(random.randrange(0, lebar_layar - ukuran_blok) / 10.0) * 10.0
makanan_y = round(random.randrange(0, tinggi_layar - ukuran_blok) / 10.0) * 10.0
panjang_ular += 1
# Mengatur kecepatan game (frame rate)
jam.tick(kecepatan_ular)
# Menutup Pygame dan keluar dari program
pygame.quit()
quit()
# Memanggil fungsi utama untuk memulai game
gameLoop()
 |
Cara Membuat Game Snake Klasik dengan Python |
Langkah 4: Kembangkan Gamenya Lebih Jauh! 🚀
Selamat! Anda baru saja berhasil membuat game Snake sendiri. Tapi jangan berhenti di sini. Ada banyak cara untuk membuat game ini lebih seru:
- Tambah Suara: Berikan efek suara saat ular memakan makanan atau saat game over.
- Tingkatkan Kecepatan: Buat kecepatan ular bertambah setiap kali memakan makanan.
- Menu Utama: Buat tampilan menu sebelum game dimulai.
- High Score: Simpan skor tertinggi ke dalam sebuah file agar tidak hilang saat game ditutup.
Kesimpulan
Menciptakan game klasik seperti Snake adalah langkah pertama yang fantastis dalam perjalananmu menjadi seorang game developer. Python dan Pygame menyediakan semua alat yang kamu butuhkan untuk mengubah ide-ide kreatif menjadi kenyataan.
Semoga tutorial ini bermanfaat dan membuatmu semakin semangat untuk belajar coding. Selamat mencoba dan selamat berkreasi. 🎮 Anda dapat mencoba membuat ToDo List menarik dengan Python loh...yuk coba baca artikelnya disini
Selamat mencoba dan selamat berkarya ampai jumpa di artikel PyCoding ID berikutnya
0 Komentar