Cara Membuat Power-Up dan Koleksi di Arkade
Table of content:
Power-up dan barang koleksi adalah elemen game penting yang dapat meningkatkan pengalaman gameplay dan menambah keseruan pada game arcade. Mereka memberi pemain kemampuan tambahan, hadiah, dan tantangan. Dengan perpustakaan arcade, Anda akan dapat membuat game yang menarik dengan power-up dan barang koleksi dalam waktu singkat.
Buat Game Sederhana
Mulailah dengan pengaturan dasar di mana pemain dapat bergerak ke empat arah (kiri, kanan, atas, dan bawah) menggunakan input keyboard. Selain itu, perkenalkan satu objek musuh untuk memberikan interaksi dalam lingkungan game.
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 arcadeblue = arcade.color.BLUE
red = arcade.color.RED
black = arcade.color.BLACK
white = arcade.color.WHITE
yellow = arcade.color.YELLOW
green = arcade.color.GREEN
orange = arcade.color.ORANGE
class Game(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
arcade.set_background_color(black)
self.player = arcade.SpriteCircle(20, blue)
self.player.center_x = width // 2
self.player.center_y = height // 2
self.enemy = arcade.SpriteSolidColor(20, 20, red)
self.enemy.center_x = width // 4
self.enemy.center_y = height // 4
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 -= 10
elif key == arcade.key.RIGHT:
self.player.center_x += 10
elif key == arcade.key.UP:
self.player.center_y += 10
elif key == arcade.key.DOWN:
self.player.center_y -= 10
def main():
game = Game(800, 600)
arcade.run()
if __name__ == "__main__":
main()
Jalankan kode ini, dan Anda akan memiliki permainan dasar dengan pergerakan pemain dan objek musuh.
Membuat Status Game
Untuk memasukkan power-up dan barang koleksi, Anda perlu menetapkan status permainan seperti skor dan kesehatan. Anda dapat mengelola skor dan kesehatan menggunakan variabel terpisah. Ubah kode untuk menyertakan fitur ini. Kesehatan pemain akan berkurang saat bertabrakan dengan objek musuh.
class Game(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height) self.score = 0
self.health = 100
def on_draw(self):
arcade.draw_text(f"Score: {self.score}", 10, 10, white)
arcade.draw_text(f"Health: {self.health}", 10, 30, white)
def update(self, delta_time):
if arcade.check_for_collision(self.player, self.enemy):
self.health -= 10
if self.health <= 0:
self.game_over()
def game_over(self):
pass
Sekarang, kesehatan pemain berkurang 10 saat bertabrakan dengan musuh, dan skor serta nilai kesehatan ditampilkan di layar.
Menambahkan Koleksi
Selanjutnya, buat barang koleksi yang akan menambah skor pemain sebesar 10 saat dikumpulkan. Koleksi ini akan memiliki bentuk yang berbeda untuk variasi visual. Buat file baru bernama koleksi.py dan tambahkan kode dengan pembaruan di bawah ini:
class Game(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height) self.collectibles = arcade.SpriteList()
for _ in range(5):
collectible = arcade.SpriteSolidColor(20, 40, yellow)
collectible.center_x = random.randint(0, width)
collectible.center_y = random.randint(0, height)
self.collectibles.append(collectible)
def on_draw(self):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
arcade.draw_text(f"Score: {self.score}", 10, 10, white)
arcade.draw_text(f"Health: {self.health}", 10, 30, white)
def update(self, delta_time):
for collectible in self.collectibles:
if arcade.check_for_collision(self.player, collectible):
self.score += 10
collectible.remove_from_sprite_lists()
Buat daftar koleksi dengan lima instance, masing-masing diwakili oleh persegi panjang kuning. Saat pemain bertabrakan dengan barang koleksi, skor mereka meningkat 10, dan barang koleksi dihapus dari daftar sprite.
Menambahkan Power-Up
Sekarang, Anda dapat menambahkan power-up ke gim Anda. Saat pemain mengumpulkan power-up, perisai akan muncul di sekitar mereka selama 10 detik. Selama ini, jika pemain bertabrakan dengan musuh, mereka akan menghancurkan musuh tersebut. Buat file baru bernama power-ups.py dan tambahkan kode dengan pembaruan di bawah ini:
class Game(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height) self.power_up = arcade.SpriteSolidColor(50, 20, green)
self.power_up.center_x = random.randint(0, width)
self.power_up.center_y = random.randint(0, height)
self.shield_active = False
self.shield_duration = 10
self.shield_timer = 0
def on_draw(self):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
self.power_up.draw()
arcade.draw_text(f"Score: {self.score}", 10, 10, white)
arcade.draw_text(f"Health: {self.health}", 10, 30, white)
def update(self, delta_time):
if arcade.check_for_collision(self.player, self.enemy):
if not self.shield_active:
self.health -= 10
if self.health <= 0:
self.game_over()
else:
self.enemy.remove_from_sprite_lists()
if self.shield_active:
self.shield_timer += delta_time
if self.shield_timer >= self.shield_duration:
self.shield_active = False
self.shield_timer = 0
for collectible in self.collectibles:
if arcade.check_for_collision(self.player, collectible):
self.score += 10
collectible.remove_from_sprite_lists()
if arcade.check_for_collision(self.player, self.power_up):
self.shield_active = True
self.power_up.remove_from_sprite_lists()
Di bawah ini adalah outputnya:
Termasuk Fitur Tambahan
Anda dapat lebih meningkatkan sistem power-up dan koleksi dengan menambahkan fitur tambahan. Misalnya, Anda dapat membuat power-up timer yang memperpanjang waktu gameplay saat dikumpulkan. Buat file baru bernama timer-power-up.py dan tambahkan kode dengan pembaruan di bawah ini:
class Game(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
arcade.set_background_color(black) self.player = arcade.SpriteCircle(20, blue)
self.timer_power_up = arcade.SpriteSolidColor(40, 20, orange)
self.timer_power_up.center_x = random.randint(0, width)
self.timer_power_up.center_y = random.randint(0, height)
self.game_time = 60
self.timer_power_up_duration = 10
def update(self, delta_time):
if arcade.check_for_collision(self.player, self.timer_power_up):
self.game_time += self.timer_power_up_duration
self.timer_power_up.remove_from_sprite_lists()
def main():
game = Game(800, 600)
arcade.run()
if __name__ == "__main__":
main()
Praktik Terbaik untuk Power-Up dan Barang Koleksi
Power-up dan barang koleksi memainkan peran penting dalam meningkatkan pengalaman gameplay game arcade. Untuk memastikan bahwa elemen-elemen ini menyenangkan dan terintegrasi dengan baik ke dalam game, penting untuk mengikuti beberapa praktik terbaik:
Kejernihan dan Konsistensi Visual
Gunakan sprite yang berbeda dan menarik secara visual untuk power-up dan barang koleksi agar menonjol dari elemen game lainnya. Pastikan tampilan power-up dan barang koleksi selaras dengan efek dan tujuannya di dalam game.
Pertahankan konsistensi dalam desain, skema warna, dan ukuran untuk power-up dan koleksi sepanjang permainan.
Keseimbangan dan Tantangan
Sesuaikan kelangkaan dan distribusi power-up dan barang koleksi untuk mempertahankan rasa tantangan dan penghargaan bagi para pemain. Hindari pemain yang kewalahan dengan terlalu banyak power-up atau barang koleksi, karena hal itu dapat mengurangi dampak dan kegembiraan saat menemukannya.
Seimbangkan dengan hati-hati keefektifan dan durasi power-up untuk mencegahnya terlalu dikuasai atau kurang memuaskan.
Indikator dan Umpan Balik yang Jelas
Berikan indikator visual dan audio yang jelas saat pemain mengumpulkan power-up atau koleksi. Tampilkan efek visual sementara, seperti animasi atau partikel, untuk menandakan aktivasi power-up dan durasinya.
Hubungan Tantangan-Hadiah
Pastikan power-up dan barang koleksi memberikan hadiah yang berarti bagi pemain, seperti peningkatan skor, kemampuan tambahan, atau waktu permainan yang diperpanjang. Sejajarkan kesulitan mendapatkan power-up dan collectibles dengan keuntungan yang mereka tawarkan. Tugas yang lebih menantang harus menghasilkan hadiah yang lebih berharga.
Playtesting dan Balancing
Mainkan game secara ekstensif untuk mengamati bagaimana pemain berinteraksi dengan power-up dan barang koleksi. Gunakan umpan balik pemain untuk menyempurnakan distribusi, durasi, dan efek power-up dan barang koleksi untuk menciptakan pengalaman yang seimbang dan menyenangkan.
Dengan mengikuti praktik terbaik ini, Anda dapat membuat sistem power-up dan koleksi yang menawan dan seimbang yang meningkatkan pengalaman gameplay dan membuat pemain tetap terlibat dalam game arcade Anda.
Jadikan Game Lebih Menyenangkan Dengan Power-Up dan Barang Koleksi
Power-up dan barang koleksi menambah lapisan kegembiraan dan keterlibatan ekstra pada game arcade. Mereka tidak hanya memberi pemain kemampuan dan hadiah baru, tetapi juga menciptakan tantangan dan pilihan strategis yang menarik.
Dengan menggabungkan fitur-fitur ini menggunakan perpustakaan Python Arcade, Anda dapat membuat game Anda lebih menyenangkan dan meningkatkan pengalaman bermain game secara keseluruhan untuk pemain Anda. Ingatlah untuk bereksperimen, ulangi, dan keluarkan kreativitas Anda untuk membuat power-up dan barang koleksi yang unik dan menawan yang selaras dengan tema dan mekanisme game Anda.