Belajar Cara Membuat Game 2D Dengan Python Dan Arcade
Belajar Cara Membuat Game 2D Dengan Python Dan Arcade
Python adalah bahasa pemrograman yang sangat bagus bagi orang yang ingin
belajar membuat program, serta sempurna untuk siapapun yang ingin
menyelesaikan suatu permasalahan tanpa bergantung pada boilerplate code.
Arcade adalah library Python untuk membuat game 2D yang mudah digunakan
dan bisa dipakai untuk berbagai hal saat kita sudah berpengalaman
menggunakannya. Di artikel ini, kita akan belajar bagaimana menggunakan
Python dan Arcade untuk membuat game.
Penulis asli tutorial ini telah menggunakan PyGame (library lain untuk membuat
game) selama hampir 10 tahun. Alasan Ia berganti menggunakan Arcade ialah
karena banyaknya bug PyGame yang belum pernah diperbaiki.
Arcade, seperti package Python lainnya tersedia lewat PyPi yang artinya bisa kita
pasang dengan perintah (atau perintah pipenv). Jika suda memasang
Python sebelumnya, buka sebuah jendela command prompt baru di Windows
dan ketikkan:
1 of 11 01/08/2023, 08:44
Belajar Cara Membuat Game 2D dengan Python dan Arcade https://codepolitan.com/blog/belajar-cara-membuat-game-2d-dengan-python-dan-arcade-5adf...
Kita bisa membuat gambar sederhana seperti gambar senyum di bawah ini
dengan beberapa baris kode:
import arcade
# Membuka jendela baru. Mengatur nama jendela dan dimensinya (lebar dan tinggi)
arcade.open_window(SCREEN_WIDTH, SCREEN_HEIGHT, "Drawing Example")
# Menggambar wajah
x = 300
y = 300
radius = 200
arcade.draw_circle_filled(x, y, radius, arcade.color.YELLOW)
2 of 11 01/08/2023, 08:44
Belajar Cara Membuat Game 2D dengan Python dan Arcade https://codepolitan.com/blog/belajar-cara-membuat-game-2d-dengan-python-dan-arcade-5adf...
x = 370
y = 350
radius = 20
arcade.draw_circle_filled(x, y, radius, arcade.color.BLACK)
# Menggambar senyum
x = 300
y = 280
width = 120
height = 100
start_angle = 190
end_angle = 350
arcade.draw_arc_outline(x, y, width, height, arcade.color.BLACK, start_angle, end_angle,
Tentu saja, menulis kode di global context kurang baik untuk dilakukan.
Untungnya, menulis program dengan fungsi tidak sulit dilakukan. Di bawah ini
adalah contoh dimana kita menggambar pohon pinus di posisi (x, y) tertentu
dengan sebuah fungsi:
3 of 11 01/08/2023, 08:44
Belajar Cara Membuat Game 2D dengan Python dan Arcade https://codepolitan.com/blog/belajar-cara-membuat-game-2d-dengan-python-dan-arcade-5adf...
Program yang lebih besar biasanya akan diturunkan dari kelas Window, atau
menggunakan decorator. Hal ini memungkinkan programmer untuk menulis
kode yang melakukan proses gambar, mengubah, dan meng-handle input dari
user di fungsi yang telah ditentukan. Template untuk program berbasis Window
adalah sebagai berikut:
import arcade
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
class MyGame(arcade.Window):
""" Main application class. """
arcade.set_background_color(arcade.color.AMAZON)
def setup(self):
# Set up your game here
4 of 11 01/08/2023, 08:44
Belajar Cara Membuat Game 2D dengan Python dan Arcade https://codepolitan.com/blog/belajar-cara-membuat-game-2d-dengan-python-dan-arcade-5adf...
pass
def on_draw(self):
""" Render the screen. """
arcade.start_render()
# Your drawing code goes here
def main():
game = MyGame(SCREEN_WIDTH, SCREEN_HEIGHT)
game.setup()
arcade.run()
if __name__ == "__main__":
main()
Kelas Window memiliki beberapa method yang bisa di-override (ditimpa dengan
menambah proses khusus oleh kita sendiri) untuk mengubah fungsi sebuah
program. Berikut beberapa fungsi yang paling umum:
• update: Semua kode untuk memindahkan konten game ditulis disini. Fungsi ini akan
dipanggil sekitar 60 kali tiap detik.
• set_viewport: Fungsi ini dipakai di game scrolling, saat dunia game lebih luas dari apa
yang dilihat di layar. Memanggil set_viewport memungkinkan programmer untuk
mengatur bagian dunia game mana yang akan tampil ke layar.
SPRITE_SCALING_COIN = 0.2
Kode ini akan membuat sebuah sprite menggunakan gambar yang disimpan di
�le coin_01.png. Gambar ini akan diperkecil menjadi 20% dari ukuran aslinya.
5 of 11 01/08/2023, 08:44
Belajar Cara Membuat Game 2D dengan Python dan Arcade https://codepolitan.com/blog/belajar-cara-membuat-game-2d-dengan-python-dan-arcade-5adf...
def setup(self):
""" Set up the game and initialize the variables. """
# Skor
self.score = 0
# Menyiapkan pemain
# Gambar karakter dari kenney.nl
self.player_sprite = arcade.Sprite("images/character.png", SPRITE_SCALING_PLAYER)
self.player_sprite.center_x = 50 # Posisi awal pemain
self.player_sprite.center_y = 50
self.player_list.append(self.player_sprite)
# Membuat koin
for i in range(COIN_COUNT):
# Posisi koin
coin.center_x = random.randrange(SCREEN_WIDTH)
coin.center_y = random.randrange(SCREEN_HEIGHT)
6 of 11 01/08/2023, 08:44
Belajar Cara Membuat Game 2D dengan Python dan Arcade https://codepolitan.com/blog/belajar-cara-membuat-game-2d-dengan-python-dan-arcade-5adf...
def on_draw(self):
""" Draw everything """
arcade.start_render()
self.coin_list.draw()
self.player_list.draw()
# Lakukan looping ke sprite yang ditabrak, lalu, hapus dari game, dan tambahkan skor
for coin in coins_hit_list:
coin.kill()
self.score += 1
Banyak game memiliki �tur physics untuk mensimulasikan gravitasi atau "efek
nyata" lainnya. Misal, kita mungkin tidak ingin pemain untuk melewati sebuah
dinding.
7 of 11 01/08/2023, 08:44
Belajar Cara Membuat Game 2D dengan Python dan Arcade https://codepolitan.com/blog/belajar-cara-membuat-game-2d-dengan-python-dan-arcade-5adf...
dinding yang tidak bisa ditembus oleh pemain (atau objek lainnya). Penulis
biasanya memberinya nama wall_list. Lalu sebuah engine physics dibuat di
kelas Window dengan kode:
Objek player_sprite diberikan sebuah movement vector dengan dua atribut yaitu
change_x dan change_y. Contoh sederhananya ialah kita ingin menggerakkan
karakter pemain dengan tombol panah di keyboard:
MOVEMENT_SPEED = 5
if key == arcade.key.UP:
self.player_sprite.change_y = MOVEMENT_SPEED
elif key == arcade.key.DOWN:
self.player_sprite.change_y = -MOVEMENT_SPEED
elif key == arcade.key.LEFT:
self.player_sprite.change_x = -MOVEMENT_SPEED
elif key == arcade.key.RIGHT:
self.player_sprite.change_x = MOVEMENT_SPEED
self.physics_engine.update()
8 of 11 01/08/2023, 08:44
Belajar Cara Membuat Game 2D dengan Python dan Arcade https://codepolitan.com/blog/belajar-cara-membuat-game-2d-dengan-python-dan-arcade-5adf...
self.physics_engine = arcade.PhysicsEnginePlatformer(self.player_sprite,
self.wall_list,
gravity_constant=GRAVITY)
Salah satu cara belajar paling baik ialah melalui contoh. Library Arcade memiliki
banyak contoh program yang bisa dilihat untuk mengetahui proses
pembuatannya. Contoh-contoh ini menunjukkan konsep yang banyak
ditanyakan oleh orang yang belajar membuat game.
python -m arcade.examples.sprite_moving_platforms
Program belajar online Full-stack web developer from A to Z. Cocok buat yang pengen punya karir
bagus, skill dibutuhin industri, gaji tinggi dan bisa bikin web atau aplikasi buat ngembangin bisnis
online sendiri
Arcade memungkinkan kita untuk membuat game dengan kode yang mudah
9 of 11 01/08/2023, 08:44
Belajar Cara Membuat Game 2D dengan Python dan Arcade https://codepolitan.com/blog/belajar-cara-membuat-game-2d-dengan-python-dan-arcade-5adf...
dipahami. Banyak programmer baru telah membuat game menarik tidak lama
setelah mereka mulai belajar. Selamat mencoba.
Diterjemahkan dari How to create a 2D game with Python and the Arcade library
karya Paul Vincent Craven
Tags:
10 of 11 01/08/2023, 08:44
Belajar Cara Membuat Game 2D dengan Python dan Arcade https://codepolitan.com/blog/belajar-cara-membuat-game-2d-dengan-python-dan-arcade-5adf...
11 of 11 01/08/2023, 08:44