Bagaimana Menerapkan Sistem Kesehatan di Python Arcade
Table of content:
Menambahkan sistem kesehatan ke game arkade Anda dapat meningkatkan pengalaman pemain dan dapat menambah lapisan tantangan dan keterlibatan ekstra. Anda dapat menciptakan pengalaman gameplay yang lebih imersif dengan menampilkan kesehatan pemain dan mekanik untuk kerusakan dan penyembuhan.
Untungnya, mengimplementasikan sistem kesehatan dengan Python menggunakan perpustakaan Arcade sangatlah mudah dan hanya membutuhkan beberapa langkah.
Buat Game Sederhana
Pertama, instal pip di perangkat Anda dan gunakan perintah di bawah ini untuk menginstal perpustakaan arcade:
pip install arcade
Setelah itu mulailah dengan membuat game sederhana menggunakan library Arcade. Game ini akan menampilkan karakter pemain yang dapat bergerak ke kiri, kanan, atas, dan bawah serta objek musuh yang menjadi ancaman bagi pemain.
Kode yang digunakan dalam artikel ini tersedia di sini repositori GitHub dan gratis untuk Anda gunakan di bawah lisensi MIT.
Buat file baru bernama simple-game.py dan tambahkan kode di bawah ini:
import arcade
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLAYER_MOVEMENT_SPEED = 5
white = arcade.color.WHITE
blue = arcade.color.BLUE
red = arcade.color.RED
class GameWindow(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
arcade.set_background_color(white)
self.player = arcade.SpriteCircle(30, blue)
self.enemy = arcade.SpriteCircle(30, red)
self.player.center_x = 100
self.player.center_y = 100
self.enemy.center_x = 400
self.enemy.center_y = 300
def on_draw(self):
arcade.start_render()
self.player.draw()
self.enemy.draw()
def update(self, delta_time):
pass
def on_key_press(self, key, modifiers):
if key == arcade.key.LEFT:
self.player.center_x -= PLAYER_MOVEMENT_SPEED
elif key == arcade.key.RIGHT:
self.player.center_x += PLAYER_MOVEMENT_SPEED
elif key == arcade.key.UP:
self.player.center_y += PLAYER_MOVEMENT_SPEED
elif key == arcade.key.DOWN:
self.player.center_y -= PLAYER_MOVEMENT_SPEED
def main():
game = GameWindow(SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
if __name__ == "__main__":
main()
Anda akan melihat jendela yang berisi dua karakter, diwakili oleh lingkaran biru dan merah:
Untuk menerapkan sistem kesehatan, tentukan variabel dan konstanta yang terkait dengan kesehatan. Anda akan menggunakannya untuk melacak kesehatan pemain saat ini dan menentukan aturan untuk kerusakan dan penyembuhan. Tambahkan kode berikut di dalam GameWindow kelas:
class GameWindow(arcade.Window):
def __init__(self, width, height):
self.player_health = 100
self.heal_rate = 1
self.heal_timer = 0
def update(self, delta_time):
self.heal_timer += delta_time
if self.heal_timer >= 2:
self.player_health += self.heal_rate
self.heal_timer = 0
if self.player_health > 100:
self.player_health = 100
Menerapkan Mekanisme Kerusakan dan Penyembuhan
Untuk menerapkan mekanisme kerusakan dan penyembuhan, deteksi tabrakan antara pemain dan musuh. Mengurangi kesehatan pemain saat bertabrakan dengan musuh dan menyembuhkan kesehatan pemain setiap 2 detik saat tidak bertabrakan. Modifikasi memperbarui() metode dan tambahkan kode berikut:
class GameWindow(arcade.Window):
def __init__(self, width, height):
def update(self, delta_time):
if arcade.check_for_collision(self.player, self.enemy):
self.player_health -= 5
Mengelola Skenario Kematian Pemain dan Game Over
Untuk mengelola skenario kematian pemain dan permainan berakhir, periksa apakah kesehatan pemain mencapai nol atau lebih rendah. Jika kesehatan turun menjadi nol, anggap pemain mati dan akhiri permainan. Modifikasi memperbarui() metode dengan kode berikut:
class GameWindow(arcade.Window):
def __init__(self, width, height):
def update(self, delta_time):
if self.player_health <= 0:
arcade.close_window()
Memvisualisasikan Bar Kesehatan
Representasi visual dari kesehatan pemain dapat sangat meningkatkan pengalaman bermain game. Buat bilah kesehatan menggunakan persegi panjang untuk menunjukkan tingkat kesehatan saat ini. Buat file baru bernama health-bar.py dan tambahkan kode dengan pembaruan di bawah ini:
class GameWindow(arcade.Window):
def __init__(self, width, height):
def on_draw(self):
arcade.start_render()
self.player.draw()
self.enemy.draw()
gray = arcade.color.LIGHT_GRAY
green = arcade.color.GREEN
arcade.draw_rectangle_filled(SCREEN_WIDTH // 2, 20,
SCREEN_WIDTH, 20, gray)
health_width = self.player_health / 100 * SCREEN_WIDTH
arcade.draw_rectangle_filled(health_width // 2, 20,
health_width, 20, green)
Di bawah ini adalah outputnya:
Termasuk Fitur Tambahan
Anda dapat lebih meningkatkan sistem kesehatan dengan lebih banyak fitur, seperti di bawah ini.
Tampilan Kesehatan Numerik
Selain bilah kesehatan, Anda dapat menampilkan sisa kesehatan sebagai nilai numerik di layar. Ini memberikan indikasi yang tepat tentang status kesehatan pemain. Tambahkan kode berikut di dalam on_draw() metode:
black = arcade.color.BLACK
text = f"Health: {self.player_health}"
arcade.draw_text(text, 10, 10, black, 14)
Peningkatan Kesehatan
Untuk memperkenalkan peningkatan kesehatan, Anda dapat membuat objek khusus yang meningkatkan kesehatan pemain saat bertabrakan dengannya. Berikut adalah contoh bagaimana Anda dapat menerapkan fitur ini:
if arcade.check_for_collision(self.player, self.power_up):
self.player_health += 20
self.power_up.kill()
Jenis Musuh yang Bervariasi
Untuk menambah kedalaman permainan Anda, Anda dapat memperkenalkan berbagai jenis musuh yang menimbulkan berbagai tingkat kerusakan pada pemain. Ini menambahkan elemen strategis dan memungkinkan pengalaman gameplay yang lebih beragam. Berikut implementasi dari fitur ini:
if arcade.check_for_collision(self.player, self.enemy):
if self.enemy.type == "weak":
self.player_health -= 5
elif self.enemy.type == "strong":
self.player_health -= 20
Dengan memasukkan fitur tambahan ini ke dalam penerapan sistem kesehatan, Anda dapat menciptakan pengalaman permainan yang lebih dinamis dan menantang bagi pemain Anda.
Praktik Terbaik untuk Sistem Kesehatan
Saat menerapkan sistem kesehatan di game arkade Anda, penting untuk mengikuti praktik terbaik untuk memastikan sistem tersebut kuat dan efisien. Berikut adalah beberapa praktik terbaik yang perlu diingat:
Jadikan Modular
Pertahankan fungsionalitas sistem kesehatan dalam kelas atau modul terpisah agar tetap modular dan mudah digunakan kembali di berbagai proyek game. Ini mempromosikan organisasi kode dan pemisahan masalah.
Validasi Masukan dan Pengamanan
Terapkan validasi input untuk mencegah kode Anda menetapkan nilai kesehatan yang tidak valid. Perlindungan yang sama harus melindungi dari nilai kesehatan yang tidak valid ketika terjadi kerusakan atau penyembuhan.
Mekanisme Simpan dan Muat
Terapkan mekanisme simpan dan muat yang menyertakan status kesehatan pemain. Ini memungkinkan pemain untuk melanjutkan permainan dengan progres mereka utuh, termasuk kesehatan mereka, bahkan setelah keluar dari permainan.
Pengujian dan Penanganan Kesalahan
Uji implementasi Sistem Kesehatan secara menyeluruh untuk memverifikasi kebenaran dan keandalannya. Gunakan teknik penanganan kesalahan yang sesuai untuk menangani pengecualian dan kasus tepi secara efektif.
Umpan Balik Kesehatan yang Konsisten
Berikan umpan balik yang konsisten dan jelas kepada pemain tentang status kesehatannya. Anda dapat menambahkan efek audio, isyarat visual, atau bahkan umpan balik haptic, memastikan bahwa pemain mengetahui kondisi kesehatan mereka dalam game dan dapat membuat keputusan selama bermain game.
Dengan mengikuti praktik terbaik ini, Anda dapat membuat Sistem Kesehatan yang tangguh dan efektif yang meningkatkan pengalaman bermain game arcade Anda sambil mempertahankan kualitas dan keterbacaan kode.
Jadikan Game Lebih Menyenangkan Dengan Sistem Kesehatan
Menambahkan Sistem Kesehatan ke game Anda dapat secara signifikan meningkatkan pengalaman pemain secara keseluruhan. Ini memperkenalkan elemen risiko dan tantangan, membuat gameplay lebih menarik dan bermanfaat.
Representasi visual dari kesehatan memungkinkan pemain untuk dengan mudah menilai status mereka saat ini, meningkatkan pencelupan dan pengambilan keputusan strategis.