Menanggapi input sangat penting untuk game apa pun, dan bagus untuk mendukung keyboard bagi pengguna yang menyukainya. Cari tahu caranya dengan perpustakaan arcade Python.

Masukan keyboard adalah bagian penting dari pengembangan game, dan sangat penting untuk menanganinya secara efektif guna memberikan pengalaman pengguna yang luar biasa. Pustaka Arcade menyediakan cara yang mudah dan efisien untuk menangani input keyboard di game Python Anda.

Membuat Game Sederhana Dengan Pemain

Anda dapat menemukan kode lengkapnya di repo GitHub ini.

Sebelum mendalami penanganan input keyboard, pastikan Anda memilikinya pip terpasang di perangkat Anda. Gunakan perintah ini untuk menginstal perpustakaan arcade:

pip menginstal arcade

Setelah itu, buat kerangka permainan sederhana:

impor arcade

SCREEN_WIDTH = 640
LAYAR_TINGGI = 480

kelasMyGame(arcade. Jendela):
def__init__(diri, lebar, tinggi):
super().__init__(lebar, tinggi, "Permainanku")
arcade.set_background_color (arcade.color. PUTIH)

defon_draw(diri sendiri):
arcade.start_render()

defmemperbarui(mandiri, waktu_delta):
lulus

instagram viewer

Game Saya (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.lari()

Ini menciptakan jendela dengan latar belakang putih. Selanjutnya, tambahkan pemain ke game Anda:

kelasPemain:
def__init__(diri, x, y):
diri.x = x
diri.y = y
diri.kecepatan = 5
diri.radius = 20

defmenggambar(diri sendiri):
arcade.draw_circle_filled (self.x, self.y, self.radius, arcade.color. BIRU)

defpindah_kiri(diri sendiri):
self.x -= self.speed

defbergerak ke kanan(diri sendiri):
self.x += self.speed

defbergerak_naik(diri sendiri):
self.y += self.speed

defTurunkan(diri sendiri):
self.y -= self.speed

Ini menciptakan pemain sederhana dengan lingkaran biru. Anda dapat menambahkan pemain ini ke gim Anda dengan memodifikasi MyGame kelas:

impor arcade

SCREEN_WIDTH = 640
LAYAR_TINGGI = 480

kelasMyGame(arcade. Jendela):
def__init__(diri, lebar, tinggi):
super().__init__(lebar, tinggi, "Permainanku")
arcade.set_background_color (arcade.color. PUTIH)
self.player = Pemain (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)

defon_draw(diri sendiri):
arcade.start_render()
self.player.draw()

defmemperbarui(mandiri, waktu_delta):
lulus

defutama():
Game Saya (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.lari()

jika __nama__ == "__utama__":
utama()

Sekarang Anda memiliki pemain dalam gim Anda yang dapat Anda gambar di layar.

Menanggapi Key Presses dan Rilis

Untuk merespons input pengguna dalam game, Anda perlu menangani penekanan dan pelepasan tombol. Pustaka Arcade menyediakan dua metode untuk menangani peristiwa ini: on_key_press Dan on_key_release.

Untuk menggunakan metode ini, Anda perlu mendefinisikannya di file arcade. Jendela subkelas. Saat pemain menekan atau melepaskan kunci, arcade akan menjalankan metode yang sesuai, meneruskannya dengan dua argumen: kunci dan pengubah. kunci adalah bilangan bulat yang mewakili kode kunci dari tombol yang ditekan atau dilepaskan. pengubah adalah bitfield yang mewakili tombol pengubah yang juga ditekan oleh pemain, seperti Shift atau Control.

Berikut adalah contoh cara merespons penekanan tombol di game Anda:

kelasMyGame(arcade. Jendela):
defon_key_press(mandiri, kunci, pengubah):
jika kunci == arcade.kunci. KIRI:
# Pindahkan pemain ke kiri
elif kunci == arcade.kunci. BENAR:
# Pindahkan pemain ke kanan
elif kunci == arcade.kunci. KE ATAS:
# Pindahkan pemain ke atas
elif kunci == arcade.kunci. TURUN:
# Pindahkan pemain ke bawah

Untuk menanggapi rilis kunci, Anda dapat menentukan on_key_release metode dengan cara yang sama:

kelasMyGame(arcade. Jendela):
defon_key_release(mandiri, kunci, pengubah):
jika kunci == arcade.kunci. KIRI:
# Berhenti memindahkan pemain ke kiri
elif kunci == arcade.kunci. BENAR:
# Berhenti memindahkan pemain dengan benar
elif kunci == arcade.kunci. KE ATAS:
# Berhenti memindahkan pemain ke atas
elif kunci == arcade.kunci. TURUN:
# Berhenti memindahkan pemain ke bawah

Sangat penting untuk dicatat bahwa menangkap input pengguna di pygame memerlukan pemeriksaan peristiwa manual dalam lingkaran permainan Anda. Di sisi lain, perpustakaan Arcade secara otomatis memanggil metode yang relevan saat pemain menekan atau melepaskan tombol. Ini berarti Anda tidak perlu memeriksa peristiwa penting secara manual di loop game Anda, sehingga Anda tidak perlu repot dengan kode tambahan.

Menyesuaikan Penanganan Input Keyboard agar Sesuai dengan Kebutuhan Game Anda

Pustaka Arcade menyediakan banyak cara untuk menyesuaikan input keyboard. Anda mungkin ingin mengubah pengikatan kunci untuk game Anda atau mengizinkan pemain menyesuaikan pengikatan kuncinya sendiri.

Anda dapat melakukan ini dengan mendefinisikan kamus key_map yang memetakan setiap kunci ke metode yang sesuai dari objek pemain. Untuk memungkinkan pemain menyesuaikan ikatan kuncinya, Anda dapat menambahkan menu pengaturan yang mengubah key_map kamus berdasarkan preferensi pemain.

Berikut contohnya:

kelasMyGame(arcade. Jendela):
def__init__(diri, lebar, tinggi, judul):
super().__init__(lebar, tinggi, judul)
diri.pemain = Pemain(100, 100)

self.key_map = {
arcade.key. KIRI: self.player.move_left,
arcade.key. KANAN: self.player.move_right,
arcade.key. ATAS: self.player.move_up,
arcade.key. BAWAH: self.player.move_down
}

defon_key_press(mandiri, kunci, pengubah):
jika kunci di dalam self.key_map:
self.key_map[kunci]()

defon_key_release(mandiri, kunci, pengubah):
jika kunci di dalam self.key_map:
self.key_map[kunci + 1]()

Menanggapi Input Pengguna secara Real Time

Menanggapi input pengguna secara real time merupakan aspek penting dalam membuat game yang menarik. Dengan meluangkan waktu untuk menangani input keyboard dengan benar dalam game, Anda dapat membuat tampilan yang lebih menarik dan pengalaman imersif untuk pemain Anda, dan pada akhirnya membuat game Anda menonjol di keramaian marketplace.