Buat karakter utama Anda bergerak sebagai respons terhadap input pemain dengan event keyboard dan mouse perpustakaan Arcade.

Arcade adalah perpustakaan Python populer yang dapat Anda gunakan untuk membuat game arcade 2D. Ini adalah pustaka yang mudah digunakan yang menyediakan kerangka kerja sederhana untuk membuat game dengan Python.

Salah satu komponen penting dari setiap permainan adalah pergerakan pemain.

Membuat Game Sederhana di Arcade

Anda dapat menemukan yang lengkap kode dalam repo GitHub ini.

Sebelum memulai, pastikan Anda sudah pip diinstal pada perangkat Anda. Gunakan perintah ini untuk menginstal perpustakaan arcade:

pustaka instalasi pip

Setelah itu, buat kelas Pemain sebagai subkelas dari arcade. Sprite kelas, dan a MyGame kelas sebagai subkelas dari arcade. Jendela. Itu MyGame kelas akan memiliki metode untuk menyiapkan objek game, merendernya di layar, memperbarui status game, dan menangani input pengguna. Kode untuk membuat layar game dan objek pemain adalah sebagai berikut:

instagram viewer
impor arcade

SCREEN_WIDTH = 800
LAYAR_TINGGI = 600

kelasPemain(arcade. Sprite):
def__init__(diri sendiri):
super().__init__("pemain.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2

kelasMyGame(arcade. Jendela):
def__init__(diri sendiri):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Permainanku")
diri.pemain = Tidak ada
arcade.set_background_color (arcade.color. HITAM)

defmempersiapkan(diri sendiri):
self.player = Pemain()

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

defmemperbarui(mandiri, waktu_delta):
lulus

Permainanku().run()

Menambahkan Gerakan Pemain Dengan Input Keyboard

Sekarang setelah Anda membuat layar game dan objek pemain, Anda dapat memindahkan pemain sebagai respons terhadap input keyboard. Tentukan on_key_press() Dan on_key_release() metode, yang akan Anda panggil saat pemain menekan atau melepaskan tombol.

defon_key_press(mandiri, kunci, pengubah):
jika kunci == arcade.kunci. KIRI:
self.player.change_x = -5
elif kunci == arcade.kunci. BENAR:
self.player.change_x = 5
elif kunci == arcade.kunci. KE ATAS:
self.player.change_y = 5
elif kunci == arcade.kunci. TURUN:
self.player.change_y = -5

defon_key_release(mandiri, kunci, pengubah):
jika kunci == arcade.kunci. KIRI atau kunci == arcade.kunci. BENAR:
self.player.change_x = 0
elif kunci == arcade.kunci. KE ATAS atau kunci == arcade.kunci. TURUN:
self.player.change_y = 0

Saat menambahkan gerakan pemain dengan input keyboard, Anda dapat menyesuaikan kecepatan gerakan dengan mengubah nilai yang ditetapkan self.player.change_x Dan self.player.change_y. Anda juga dapat menambahkan ketentuan untuk membatasi pergerakan pemain di dalam layar game.

Menambahkan Gerakan Pemain Dengan Input Mouse

Selain input keyboard, Anda juga dapat menambahkan gerakan pemain menggunakan input mouse. Tentukan on_mouse_motion() metode, yang akan dijalankan saat pemain menggerakkan mouse. Di dalam metode, atur pusat_x Dan center_y properti objek pemain ke posisi mouse saat ini.

defon_mouse_motion(diri, x, y, dx, dy):
self.player.center_x = x
self.player.center_y = y

Saat menambahkan gerakan pemain dengan input mouse, Anda dapat menyesuaikan perilaku objek pemain saat pengguna mengklik atau menahan mouse mereka dengan menentukan metode seperti on_mouse_press() atau on_mouse_drag(). Anda dapat menggunakan metode ini untuk memicu aksi pemain seperti menembak atau melompat, bergantung pada mekanisme permainan.

Memperkenalkan Fitur Tambahan

Anda dapat lebih meningkatkan pergerakan pemain dengan memperhitungkan akselerasi dan deselerasi. Modifikasi on_key_press() metode untuk mengurangi atau menambah ubah_x Dan change_y properti objek pemain, tergantung pada arah gerakan. Juga mengatur ubah_x Dan change_y properti ke 0 di on_key_release() metode, seperti sebelumnya.

defon_key_press(mandiri, kunci, pengubah):
jika kunci == arcade.kunci. KIRI:
self.player.change_x -= 5
elif kunci == arcade.kunci. BENAR:
self.player.change_x += 5
elif kunci == arcade.kunci. KE ATAS:
self.player.change_y += 5
elif kunci == arcade.kunci. TURUN:
self.player.change_y -= 5

defon_key_release(mandiri, kunci, pengubah):
jika kunci == arcade.kunci. KIRI atau kunci == arcade.kunci. BENAR:
self.player.change_x = 0
elif kunci == arcade.kunci. KE ATAS atau kunci == arcade.kunci. TURUN:
self.player.change_y = 0

Sama seperti PyGame, Anda juga bisa tambahkan deteksi tabrakan antara objek pemain dan objek game lainnya, seperti musuh atau rintangan di arcade. Anda dapat melakukannya dengan menambahkan kode berikut ke file memperbarui() metode dari MyGame kelas:

defmemperbarui(mandiri, waktu_delta):
self.player.update()

# Periksa tabrakan antara pemain dan objek game lainnya
tabrakan = arcade.check_for_collision_with_list (self.player, self.enemy_list)

untuk tabrakan di dalam tabrakan:
tabrakan.membunuh()

Buat Game Menarik Dengan Gerakan Pemain Interaktif

Pergerakan pemain interaktif adalah aspek penting dari setiap permainan yang menarik. Penggunaan berbagai jenis mekanisme gerakan seperti melompat, berlari, terbang, dan meluncur dapat menambah variasi dan keseruan dalam permainan.

Memberi pemain kendali atas gerakan mereka menambah rasa agensi dan pencelupan, yang dapat menghasilkan pengalaman bermain game yang lebih memuaskan.