Pernahkah Anda ingin membuat game yang menarik menggunakan library PyGame Python, tetapi merasa kewalahan dengan konsep manajemen waktu? Jika demikian, Anda tidak sendirian.
Waktu adalah salah satu komponen paling penting dalam pengembangan game, dan memahami cara kerja waktu di PyGame sangat penting untuk membuat game yang menarik dan sukses. PyGame menyediakan beberapa fungsi dan modul berguna yang memungkinkan Anda mengontrol waktu dalam gim Anda.
Membuat Game Sederhana
Mulailah dengan membuat game sederhana di mana sebuah persegi panjang bergerak ke kanan. Memulai, instal pip di perangkat Anda dan gunakan perintah di bawah ini untuk menginstal modul PyGame:
pip instal pygame
Anda dapat menemukan semua contoh kode di sini repo GitHub.
Setelah diinstal, impor modul PyGame. Kemudian buat layar dengan ukuran 800x600 dan warna background putih, dan tambahkan objek persegi. Kode akan terlihat seperti ini:
impor pygame
pygame.init()
layar = pygame.display.set_mode((800, 600))
background = pygame. Permukaan (screen.get_size())
background.isi((255, 255, 255))
lurus = pygame. Persegi panjang(0, 0, 20, 20)
Setelah itu, gunakan while loop agar game tetap berjalan dan biarkan objek lurus bergerak ke kanan hingga mencapai ujung layar.
berlari = BENAR
ketika berlari:
untuk peristiwa di dalam pygame.event.get():
jika event.type == pygame. BERHENTI:
berlari = PALSU
persegi.x += 1
jika persegi.x > 780:
persegi.x = 0
screen.blit (latar belakang, (0, 0))
pygame.draw.rect (layar, (0, 0, 0), lurus)
pygame.display.update()
Anda juga dapat menambahkan input pengguna dan tabrakan dalam permainan. Di bawah ini adalah outputnya:
Ikhtisar Modul Waktu PyGame
Untuk mengontrol waktu dalam game ini, Anda dapat menggunakan pygame.time modul. Modul ini menyediakan berbagai fitur yang bermanfaat, antara lain a Jam objek dengan metode seperti get_ticks(), Tunggu(), Dan menunda(). Dengan menggunakan fungsi-fungsi ini, Anda dapat dengan mudah mengontrol waktu dalam gim Anda.
Membuat Objek Jam untuk Melacak Waktu
Di PyGame, Anda bisa menggunakan objek Jam untuk melacak waktu. Untuk membuat Jam, cukup gunakan baris kode berikut:
jam = pygame.waktu. Jam()
Dengan objek Jam ini, kini Anda dapat melacak waktu dalam game Anda. Ada juga beberapa fungsi berguna lainnya yang terkait dengan objek Jam, seperti:
-
get_time(): Dengan bantuan fungsi ini, Anda dapat mengambil waktu yang dibutuhkan untuk setiap frame permainan. Untuk menggunakan fungsi ini, cukup tambahkan baris kode berikut setelah perulangan while:
Tambahkan objek teks untuk menampilkan waktu yang dibutuhkan:waktu = jam.get_time()
font = pygame.font. SysFont('Arial', 18)
teks = font.render('Waktu yang dibutuhkan: {} md'.format (waktu), BENAR, (0, 0, 0))
screen.blit (teks, (0, 0)) -
kutu(): Gunakan fungsi ini untuk mengatur frekuensi gambar game. Secara default, kecepatan bingkai diatur ke 60 FPS. Untuk mengaturnya menjadi 30 FPS, cukup tambahkan baris kode berikut:
jam.tik(30)
-
get_fps(): Anda dapat mengambil frekuensi gambar game saat ini menggunakan get_fps. Untuk menggunakan fungsi ini, cukup tambahkan baris kode berikut:
Anda dapat menambahkan objek teks untuk menampilkan frekuensi gambar:fps = jam.get_fps()
font = pygame.font. SysFont('Arial', 18)
teks = font.render('FPS: {}'.format (fps), BENAR, (0, 0, 0))
screen.blit (teks, (0, 20)) -
tick_busy_loop(): Fungsi ini memungkinkan Anda menghitung berapa milidetik yang telah berlalu sejak panggilan terakhir ke kutu() fungsi. Untuk menggunakannya, cukup tambahkan baris kode berikut:
jam.tick_busy_loop(30)
Mendapatkan Waktu Menggunakan get_ticks
Itu get_ticks() fungsi mengembalikan waktu dalam milidetik sejak PyGame diinisialisasi. Untuk menggunakan fungsi ini, tambahkan baris kode berikut:
time_elapsed = pygame.time.get_ticks()
Tambahkan objek teks untuk menampilkan waktu yang dibutuhkan:
font = pygame.font. SysFont('Arial', 18)
teks = font.render('Waktu Berlalu: {} md'.format (time_elapsed), BENAR, (0, 0, 0))
screen.blit (teks, (0, 40))
Anda dapat menggunakan waktu yang berlalu untuk mengimplementasikan elemen game berbasis waktu seperti power-up yang bertahan selama jangka waktu tertentu. Misalnya, Anda dapat mengimplementasikan power-up yang meningkatkan kecepatan objek lurus selama 5 detik:
jika waktu berlalu / 5000 > 0:
persegi.x += 5
Di bawah ini adalah outputnya:
Menjeda Game Menggunakan Fungsi tunggu dan tunda
PyGame juga menyediakan dua fungsi yang dapat Anda gunakan untuk menjeda game selama jangka waktu tertentu: Tunggu fungsi dan menunda fungsi.
Untuk menggunakan Tunggu fungsi, cukup tambahkan baris kode berikut di while loop:
pygame.waktu.tunggu(1000)
Ini akan menjeda game selama 1000 milidetik (1 detik). Untuk menggunakan menunda fungsi, cukup tambahkan baris kode berikut di while loop:
pygame.waktu.delay(1000)
Ini akan menunda frame game berikutnya selama 1000 milidetik (1 detik).
Perbedaan antara menunggu dan menunda
Ada beberapa perbedaan antara Tunggu Dan menunda fungsi. Itu Tunggu fungsi menidurkan proses untuk berbagi prosesor dengan program lain. Itu menunda fungsi akan menggunakan prosesor untuk membuat penundaan lebih akurat. Ini berarti bahwa menunda fungsi membutuhkan lebih banyak daya prosesor daripada Tunggu fungsi dan cocok untuk game yang membutuhkan waktu yang tepat.
Membuat Acara Menggunakan set_timer
Anda dapat menggunakan set_timer() berfungsi untuk membuat peristiwa yang dipicu setelah jangka waktu tertentu.
Acara di PyGame adalah objek yang berisi informasi tentang input pengguna atau pesan yang dibuat oleh program. Untuk menggunakan fungsi ini, buat acara khusus dan tambahkan baris kode berikut:
pygame.time.set_timer (CUSTOM_EVENT, 1000)
Ini akan membuat peristiwa yang dipicu setelah 1.000 milidetik—1 detik. Ada berbagai jenis peristiwa yang dapat Anda picu, seperti gerakan mouse, input keyboard, dan peristiwa jendela. Kode Anda kemudian dapat bereaksi terhadap kejadian ini dengan cara apa pun yang paling sesuai.
Misalnya, jika Anda ingin mengubah sumbu y objek persegi setelah 1 detik, atau saat peristiwa khusus terpicu, Anda dapat menambahkan baris kode berikut:
jika event.type == CUSTOM_EVENT:
lurus.y += 20
Dengan cara ini, Anda dapat dengan mudah membuat acara berbasis waktu di game Anda yang dapat Anda gunakan untuk membuat gameplay yang menarik dan menantang.
Tingkatkan Kontrol Game Dengan Waktu
Dengan bantuan kontrol waktu, Anda dapat meningkatkan kontrol permainan. Anda dapat menggunakan waktu untuk menerapkan kondisi akselerasi, deselerasi, dan bahkan game-over. Banyak game memperkenalkan konsep bullet time di mana aksi melambat untuk waktu yang singkat.
Dengan menggunakan fungsi kontrol waktu di PyGame, Anda dapat dengan mudah mengimplementasikan fitur tersebut—dan lebih banyak lagi—di game Anda sendiri.