Farih.co.id
Home Programming Cara Membuat Power-Up dan Koleksi di Arkade

Cara Membuat Power-Up dan Koleksi di Arkade

platformer game

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 arcade

blue = 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.

game arcade sederhana dengan objek pemain dan 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.

game arcade dengan objek koleksi, objek pemain, dan musuh

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:

game arcade dengan powerups, pemain dan objek musuh

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.

Comment
Share:

Leave a Reply

Your email address will not be published. Required fields are marked *

Ad