Menangani Input Keyboard di Arcade Library Python Games
Table of content:
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
Sebelum mulai menangani input keyboard, pastikan Anda telah menginstal pip di perangkat Anda. Gunakan perintah ini untuk menginstal perpustakaan arcade:
pip install arcade
Setelah itu, buat kerangka permainan sederhana:
import arcadeSCREEN_WIDTH = 640
SCREEN_HEIGHT = 480
class MyGame(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height, "My Game")
arcade.set_background_color(arcade.color.WHITE)
def on_draw(self):
arcade.start_render()
def update(self, delta_time):
pass
MyGame(SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
Ini menciptakan jendela dengan latar belakang putih. Selanjutnya, tambahkan pemain ke game Anda:
class Player:
def __init__(self, x, y):
self.x = x
self.y = y
self.speed = 5
self.radius = 20 def draw(self):
arcade.draw_circle_filled(self.x, self.y, self.radius, arcade.color.BLUE)
def move_left(self):
self.x -= self.speed
def move_right(self):
self.x += self.speed
def move_up(self):
self.y += self.speed
def move_down(self):
self.y -= self.speed
Ini menciptakan pemain sederhana dengan lingkaran biru. Anda dapat menambahkan pemain ini ke gim Anda dengan memodifikasi MyGame kelas:
import arcadeSCREEN_WIDTH = 640
SCREEN_HEIGHT = 480
class MyGame(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height, "My Game")
arcade.set_background_color(arcade.color.WHITE)
self.player = Player(SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)
def on_draw(self):
arcade.start_render()
self.player.draw()
def update(self, delta_time):
pass
def main():
MyGame(SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
if __name__ == "__main__":
main()
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:
class MyGame(arcade.Window):
def on_key_press(self, key, modifiers):
if key == arcade.key.LEFT:
elif key == arcade.key.RIGHT:
elif key == arcade.key.UP:
elif key == arcade.key.DOWN:
Untuk menanggapi rilis kunci, Anda dapat menentukan on_key_release metode dengan cara yang sama:
class MyGame(arcade.Window):
def on_key_release(self, key, modifiers):
if key == arcade.key.LEFT:
elif key == arcade.key.RIGHT:
elif key == arcade.key.UP:
elif key == arcade.key.DOWN:
Penting untuk diperhatikan bahwa menangkap input pengguna di pygame membutuhkan pemeriksaan event manual dalam loop game 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:
class MyGame(arcade.Window):
def __init__(self, width, height, title):
super().__init__(width, height, title)
self.player = Player(100, 100) self.key_map = {
arcade.key.LEFT: self.player.move_left,
arcade.key.RIGHT: self.player.move_right,
arcade.key.UP: self.player.move_up,
arcade.key.DOWN: self.player.move_down
}
def on_key_press(self, key, modifiers):
if key in self.key_map:
self.key_map[key]()
def on_key_release(self, key, modifiers):
if key in self.key_map:
self.key_map[key + 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 menciptakan pengalaman yang lebih menarik dan imersif bagi pemain, dan pada akhirnya membuat game Anda menonjol di pasar yang ramai.