Cara menggunakan best python games

Berikan opini pribadi Anda & bantu ribuan orang untuk memilih situs belajar online yang terbaik. Semua feedback, baik itu yang positif atau negatif, akan diterima selama Anda bersikap jujur. Kami tidak akan mempublikasikan feedback yang bias atau spam. Jadi, kalau Anda ingin membagikan pengalaman, opini atau bahkan saran pribadi - tempat ini ada untuk Anda!

Pernyataan ini ada benarnya, karena Game yang dipublikasikan untuk Linux tidak sebanyak Windows dan Mac.

Mungkin karena Linux kebanyakan digunakan di server dan cloud.

Tapi ini sebenarnya bisa jadi potensi pasar dengan persaingan yang sedikit.

Bayangkan…

Game anda diterbitkan untuk platform Linux, seberapa banyak pengguna Linux (terutama yang baru bermigrasi) akan memainkan Game anda di Linux. Saya kira akan banyak.

Ah, saya tidak akan membahas ini lebih dalam. Karena pada artikel ini kita akan belajar cara membuat game di Linux dengan PyGame.

Siap?

Mari kita mulai…

Persiapan Awal yang Harus dilakukan

Sebelum memulai, saya akan menjelaskan dulu persiapan yang harus dilakukan.

Pada tutorial ini, kita akan menggunakan modul PyGame dengan Python 3.

Jadi ada dua hal utama yang harus disiapkan:

  1. Python 3
  2. PyGame

PyGame adalah modul Python yang berisi fungsi dan class yang kita butuhkan untuk membuat game.

Pengetahuan yang dibutuhkan

Setidaknya untuk dapat mengikuti tutorial ini, kamu harus paham dulu dasar-dasar pemrograman Python.

Apabila belum paham, silahkan ikuti: Tutorial Pemrograman Python yang sudah saya buat.

Selain itu pengetahuan tentang grafika komputer dan matematika juga akan sangat membantu.

Penasaran kan… bagaimana peranan matematika di dalam Game?

Nanti saja kita lihat di dalam kode.

Lanjutkan baca sampai selesai ya…

Oya, pastikan kamu mengetik sendiri kode yang ada di tutorial ini. Kalau copas nanti bisa error, saoalnya python sangat sensitif dengan tab dan spasi. Selain itu, kamu juga akan menikmati proses coding-nya. Bukan menikmati proses copas-nya 😝

Instalasi PyGame

PyGame dapat kita install menggunakan mkdir mygame touch mygame/game.py7 dengan perintah berikut:

sudo pip install pygame

Atau bisa juga melalui mkdir mygame touch mygame/game.py8:

sudo apt-get install python3-pygame

Maka modul mkdir mygame touch mygame/game.py9 akan terinstal ke dalam lingkungan OS (Sistem Opearsi).

Buat yang menggunakan Virtual Environtment gunakan perintah ini:

# membuat virtual env virtualenv -p python3 pygame # pindah ke direktori virtualenv cd pygmae # aktifkan virtual env . bin/activate # install modul pygame di dalam virtualenv pip install pygame

Belum tahu tentang virtual environment?

Silahkan baca: Mengenal Virtualenv: Apa Saja yang Harus Kamu Ketahui?

OK, lanjut…

Sekarang kita tes dulu, apakah modul mkdir mygame touch mygame/game.py9 sudah terinstal atau tidak. Silahkan masuk ke shell python dengan mengetik perintah mygame/ └── game.py1 atau mygame/ └── game.py2 (di virtual env).

Ketik perintah berikut:

>>> import pygame

Kalau tidak terjadi error, maka modul mkdir mygame touch mygame/game.py9 sudah terinstal dengan benar.

Tapi kalau terjadi error, artinya modul mkdir mygame touch mygame/game.py9 belum terinstall.

Coba install lagi sampai berhasil.

Membuat Proyek Game

Sebelum mulai membuat game, kita tentukan dulu game seperti apa yang akan dibuat.

Pada tutorial ini, kita akan membuat game 2D dengan game play seperti ini:

Permainan pada game ini hanya sebatas tembak-tembakan saja dengan pemain utama (player) adalah seekor kelinci. Dia harus melindungi bentengnya dari serangan hewan liar.

Kelinci ini menggnakan panah untuk menebak.

Sederhana bukan…

Mari kita mulai proyek ini dengan membuat direktori baru bernama mygame/ └── game.py5. Lalu di dalam direktori ini buat file baru bernama mygame/ └── game.py6.

Ikuti perintah berikut:

mkdir mygame touch mygame/game.py

Sehingga kita akan punya struktur direktori seperti ini:

mygame/ └── game.py

Untuk aset game seperti game art dan audio sudah saya sediakan.

Tinggal download saja di sini: [ Download Game Assets]

Setelah itu ekstrak direktori mygame/ └── game.py7 ke dalam direktori mygame/ └── game.py5.

Sehingga kita punya struktur direktori seperti ini:

Selanjutnya kita bisa mulai coding…

Langkah 1: Membuat Game dengan PyGame

Buka file mygame/ └── game.py6 dengan teks editor, lalu ketik kode berikut:

File: mygame/ └── game.py6

# 1 - Import Library ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ import pygame from pygame.locals import * # 2 - Initialize the Game ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.init() width, height = 640, 480 screen = pygame.display.set_mode((width, height)) running = True playerpos = [100, 100] # initial position for player # 3 - Load Game Assets ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 3.1 - Load Images player = pygame.image.load("resources/img/dude.png") ## 4 - The Game Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while(running): # 5 - Clear the screen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.fill(0) # 6 - Draw the game object ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.blit(player, playerpos) # 7 - Update the sceeen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.display.flip() # 8 - Event Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for event in pygame.event.get(): # event saat tombol exit diklik if event.type == pygame.QUIT: pygame.quit() exit(0)

Ada 8 langkah awal yang harus kita lakukan dalam membuat game dengan PyGame:

1 - Import Library:

Mmengimpor semua library yang dibutuhkan oleh Game:

import pygame from pygame.locals import *

Pertama kita impor mkdir mygame touch mygame/game.py9 lalu mengimpor konstanta di dalam mkdir mygame touch mygame/game.py9.

2 - Initialize Game:

Pada tahapan ini kita melakukan inisialisasi atau deklarasi variabel dan objek yang dibutuhkan.

3 - Load Game Assets:

Pada tahapan ini kita me-load game asset. Pada kode di atas, kita me-load gambar untuk ditampilkan pada Game.

4 - Game Loop:

Game loop akan mengunlang terus mmenerus selama game-nya berjalan.

5 - Clear Screen:

Kita menggunakan fungsi # 1 - Import Library ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ import pygame from pygame.locals import * # 2 - Initialize the Game ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.init() width, height = 640, 480 screen = pygame.display.set_mode((width, height)) running = True playerpos = [100, 100] # initial position for player # 3 - Load Game Assets ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 3.1 - Load Images player = pygame.image.load("resources/img/dude.png") ## 4 - The Game Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while(running): # 5 - Clear the screen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.fill(0) # 6 - Draw the game object ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.blit(player, playerpos) # 7 - Update the sceeen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.display.flip() # 8 - Event Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for event in pygame.event.get(): # event saat tombol exit diklik if event.type == pygame.QUIT: pygame.quit() exit(0)3 untuk mengosongkan layar sebelum digambar.

6 - Draw the game object:

Pada tahapan ini kita menggambar game objek ke layar. Jadi apapun yang akan kita tampilkan ke layar, kita harus menggambarnya di sini.

Fungsi yang digunakan untuk menggambar pada Pygame adalah:

screen.blit(objek, posisi)

parameter # 1 - Import Library ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ import pygame from pygame.locals import * # 2 - Initialize the Game ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.init() width, height = 640, 480 screen = pygame.display.set_mode((width, height)) running = True playerpos = [100, 100] # initial position for player # 3 - Load Game Assets ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 3.1 - Load Images player = pygame.image.load("resources/img/dude.png") ## 4 - The Game Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while(running): # 5 - Clear the screen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.fill(0) # 6 - Draw the game object ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.blit(player, playerpos) # 7 - Update the sceeen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.display.flip() # 8 - Event Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for event in pygame.event.get(): # event saat tombol exit diklik if event.type == pygame.QUIT: pygame.quit() exit(0)4 adalah sebuah tuple # 1 - Import Library ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ import pygame from pygame.locals import * # 2 - Initialize the Game ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.init() width, height = 640, 480 screen = pygame.display.set_mode((width, height)) running = True playerpos = [100, 100] # initial position for player # 3 - Load Game Assets ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 3.1 - Load Images player = pygame.image.load("resources/img/dude.png") ## 4 - The Game Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while(running): # 5 - Clear the screen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.fill(0) # 6 - Draw the game object ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.blit(player, playerpos) # 7 - Update the sceeen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.display.flip() # 8 - Event Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for event in pygame.event.get(): # event saat tombol exit diklik if event.type == pygame.QUIT: pygame.quit() exit(0)5 yang menyatakan koordinat atau lokasi gambar akan ditampilkan.

7 - Update Screen:

Karena saat ini kita berada di dalam game loop, gambar akan dibuat terus menerus selama gamenya berjalan.

Karena itu, kita perlu update tampilan screenya agar tercipta efek animasi.

Fungsi untuk update di pygame adalah:

pygame.display.flip()

8 - Event Loop:

Event loop berfungsi untuk mengecek event apa saja yang terjadi di dalam game. Misal saat mouse ditekan, saat salah satu keyboard ditekan, dsb.

Nah, sekarang coba eksekusi Gamenya dengan perintah:

sudo apt-get install python3-pygame0

Maka hasilnya:

Boom!! kita berhasil menggambar Player di ruang hampa.

Ngomong-ngomong itu posisinya berada di titik # 1 - Import Library ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ import pygame from pygame.locals import * # 2 - Initialize the Game ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.init() width, height = 640, 480 screen = pygame.display.set_mode((width, height)) running = True playerpos = [100, 100] # initial position for player # 3 - Load Game Assets ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 3.1 - Load Images player = pygame.image.load("resources/img/dude.png") ## 4 - The Game Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while(running): # 5 - Clear the screen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.fill(0) # 6 - Draw the game object ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.blit(player, playerpos) # 7 - Update the sceeen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.display.flip() # 8 - Event Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for event in pygame.event.get(): # event saat tombol exit diklik if event.type == pygame.QUIT: pygame.quit() exit(0)6. Artinya # 1 - Import Library ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ import pygame from pygame.locals import * # 2 - Initialize the Game ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.init() width, height = 640, 480 screen = pygame.display.set_mode((width, height)) running = True playerpos = [100, 100] # initial position for player # 3 - Load Game Assets ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 3.1 - Load Images player = pygame.image.load("resources/img/dude.png") ## 4 - The Game Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while(running): # 5 - Clear the screen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.fill(0) # 6 - Draw the game object ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.blit(player, playerpos) # 7 - Update the sceeen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.display.flip() # 8 - Event Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for event in pygame.event.get(): # event saat tombol exit diklik if event.type == pygame.QUIT: pygame.quit() exit(0)7 dan # 1 - Import Library ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ import pygame from pygame.locals import * # 2 - Initialize the Game ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.init() width, height = 640, 480 screen = pygame.display.set_mode((width, height)) running = True playerpos = [100, 100] # initial position for player # 3 - Load Game Assets ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 3.1 - Load Images player = pygame.image.load("resources/img/dude.png") ## 4 - The Game Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while(running): # 5 - Clear the screen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.fill(0) # 6 - Draw the game object ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.blit(player, playerpos) # 7 - Update the sceeen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.display.flip() # 8 - Event Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for event in pygame.event.get(): # event saat tombol exit diklik if event.type == pygame.QUIT: pygame.quit() exit(0)8.

“Kok # 1 - Import Library ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ import pygame from pygame.locals import * # 2 - Initialize the Game ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.init() width, height = 640, 480 screen = pygame.display.set_mode((width, height)) running = True playerpos = [100, 100] # initial position for player # 3 - Load Game Assets ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 3.1 - Load Images player = pygame.image.load("resources/img/dude.png") ## 4 - The Game Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while(running): # 5 - Clear the screen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.fill(0) # 6 - Draw the game object ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.blit(player, playerpos) # 7 - Update the sceeen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.display.flip() # 8 - Event Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for event in pygame.event.get(): # event saat tombol exit diklik if event.type == pygame.QUIT: pygame.quit() exit(0)9 ke bawah tidak bernilai negatif?”

Diagram kartesius di komputer dibuat terbalik dengan titik import pygame from pygame.locals import *0 berada di pojok kiri atas.

Ingat-ingat lagi pelajaran matematika dan grafika komputernya, hehe 😄…

Ok, lanjut…

Langkah 2: Menambahkan Background dan Objek yang Lain

Agar game terlihat menarik, kita tambahkan background dan game objek lainnya.

Tambahkan baris ini pada langkah ke import pygame from pygame.locals import *1:

sudo apt-get install python3-pygame1

Sehingga menjadi seperti ini:

Setelah itu kita akan gambar import pygame from pygame.locals import *2 dan import pygame from pygame.locals import *3 di langkah ke import pygame from pygame.locals import *4. Tambahkan kode berikut di atas kode untuk menggambar player:

sudo apt-get install python3-pygame2

Sehingga menjadi seperti ini:

Oke, sekarang kita punya kode seperti ini:

sudo apt-get install python3-pygame3

Coba eksekusi lagi kode tersebut:

sudo apt-get install python3-pygame0

Maka hasilnya:

Mantap… 👏👏👏

Langkah 3: Menggerakan Player

Agar player bisa bergerak, kita harus memindahkan posisinya.

Misal kita ubah posisi import pygame from pygame.locals import *5 yang awalnya import pygame from pygame.locals import *6 menjadi import pygame from pygame.locals import *7, maka player akan bergerak ke kanan sejauh import pygame from pygame.locals import *8.

Pada game ini, player akan kita gerakkan saat tombol ini ditekan:

  • import pygame from pygame.locals import *9 bergerak ke kiri
  • screen.blit(objek, posisi)0 bergerak ke bawah
  • screen.blit(objek, posisi)1 bergerak ke kanan
  • screen.blit(objek, posisi)2 bergerak ke atas

Paham kan maksud saya…?

Sekarang tambahkan kode berikut pada langkah screen.blit(objek, posisi)3 (di atas screen.blit(objek, posisi)4):

sudo apt-get install python3-pygame5

Lalu di langkah ke screen.blit(objek, posisi)5, tambahkan kode berikut di bawah kode event screen.blit(objek, posisi)6:

sudo apt-get install python3-pygame6

Sehingga akan menjadi seperti ini:

Event screen.blit(objek, posisi)7 artinya saat kita menekan tombol di keyboard, sedangkan screen.blit(objek, posisi)8 saat kita melepas keyboad.

Lalu di dalam screen.blit(objek, posisi)7 dan screen.blit(objek, posisi)8 kita melakukan pengecekan tombol yang ditekan dengan konstanta yang sudah disediakan PyGame.

  • pygame.display.flip()1 untuk tombol screen.blit(objek, posisi)2
  • pygame.display.flip()3 untuk tombol import pygame from pygame.locals import *9
  • pygame.display.flip()5 untuk tombol screen.blit(objek, posisi)0
  • pygame.display.flip()7 untuk tombol screen.blit(objek, posisi)1

Terakhir kita memindahkan poisi Player bedasarkan tombol yang ditekan. Player akan bergerak sepanjang pygame.display.flip()9 dengan menambah dan mengurangi nilai import pygame from pygame.locals import *5 dan # 1 - Import Library ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ import pygame from pygame.locals import * # 2 - Initialize the Game ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.init() width, height = 640, 480 screen = pygame.display.set_mode((width, height)) running = True playerpos = [100, 100] # initial position for player # 3 - Load Game Assets ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 3.1 - Load Images player = pygame.image.load("resources/img/dude.png") ## 4 - The Game Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while(running): # 5 - Clear the screen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.fill(0) # 6 - Draw the game object ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.blit(player, playerpos) # 7 - Update the sceeen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.display.flip() # 8 - Event Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for event in pygame.event.get(): # event saat tombol exit diklik if event.type == pygame.QUIT: pygame.quit() exit(0)9.

sudo apt-get install python3-pygame7

Hasilnya:

Yeah! kita berhasil! 👏👏👏

Langkah 4: Mengubah Arah Player

Berikutnya kita ingin agar player menghadap ke mana pointer diarahkan. Sehingga nanti kita bisa menembak dan membidik musuh.

Untuk melakukan ini, kita harus memutar arah player dengan sudut tertentu lalu menggambar ulang karakternya.

Besar sudut ini bisa kita hitung dengan rumus trigonometri tangen.

Masih ingat dengan sinus (sin), cosinus (cos), dan tangen (tan)?

Hahaha 😄 sama!!

Saya juga lupa…

Tapi setidaknya kita harus paham bagaimana player akan bergerak mengikuti pointer.

Jadi begini…

Anggaplah si player berada di titik sudo apt-get install python3-pygame02, lalu pointer berada di titik sudo apt-get install python3-pygame03. Agar player dapat berputar mengikuti arah pergerakan pointer, maka kita harus menghitung besar sudut sudo apt-get install python3-pygame04.

Setelah itu, baru kita bisa rotasi player dengan besar sudut sudo apt-get install python3-pygame04.

Nah, untuk mencari besar sudut sudo apt-get install python3-pygame04, kita bisa menggunakan rumus tangen.

Tenang…

Kita tidak akan membuat fungsi kangen tangen sendiri, karena di Python sudah disediakan dengan nama sudo apt-get install python3-pygame07. Fungsi ini berada di dalam modul sudo apt-get install python3-pygame08.

Baiklah, sekarang buka lagi file mygame/ └── game.py6. Lalu tambahkan kode berikut pada langkah ke sudo apt-get install python3-pygame10:

sudo apt-get install python3-pygame8

Lalu pada langkah ke import pygame from pygame.locals import *4, ganti kode ini:

sudo apt-get install python3-pygame9

Menjadi:

# membuat virtual env virtualenv -p python3 pygame # pindah ke direktori virtualenv cd pygmae # aktifkan virtual env . bin/activate # install modul pygame di dalam virtualenv pip install pygame0

Penjelasan:

Pertama kita mengambil posisi pointer dengan fungsi sudo apt-get install python3-pygame12. Fungsi ini akan menghasilkan sebuah list yang menampung nilai posisi import pygame from pygame.locals import *5 dan # 1 - Import Library ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ import pygame from pygame.locals import * # 2 - Initialize the Game ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.init() width, height = 640, 480 screen = pygame.display.set_mode((width, height)) running = True playerpos = [100, 100] # initial position for player # 3 - Load Game Assets ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 3.1 - Load Images player = pygame.image.load("resources/img/dude.png") ## 4 - The Game Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while(running): # 5 - Clear the screen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.fill(0) # 6 - Draw the game object ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.blit(player, playerpos) # 7 - Update the sceeen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.display.flip() # 8 - Event Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for event in pygame.event.get(): # event saat tombol exit diklik if event.type == pygame.QUIT: pygame.quit() exit(0)9 dari mouse atau pointer.

Setelah itu kita menghitung besar sudut dengan fungsi sudo apt-get install python3-pygame15.

# membuat virtual env virtualenv -p python3 pygame # pindah ke direktori virtualenv cd pygmae # aktifkan virtual env . bin/activate # install modul pygame di dalam virtualenv pip install pygame1

Setelah mendapatkan besar sudut rotasi, kemudian kita putar (rotasi) player dengan fungsi sudo apt-get install python3-pygame16:

# membuat virtual env virtualenv -p python3 pygame # pindah ke direktori virtualenv cd pygmae # aktifkan virtual env . bin/activate # install modul pygame di dalam virtualenv pip install pygame2

Nilai sudo apt-get install python3-pygame17 didapatkan dari nilai radius sudo apt-get install python3-pygame18.

Terakhir kita menggambar ulang player dengan posisi baru.

Maka hasilnya:

Langkah 5: Membuat Tembakan

Berikutnya kita tambahkan kode untuk membuat tembakan.

Logikanya nanti seperti ini:

  1. Gambar panah saat event klik;
  2. Pindahkan panah sesuai arahnya;
  3. Hapus panah kalau sudah mencapai batas layar.

Semua anak panah akan kita simpan di dalam sebuah list.

Baiklah, sekarang tambahkan kode berikut pada langkah screen.blit(objek, posisi)3 tepat di bawah variabel sudo apt-get install python3-pygame20:

# membuat virtual env virtualenv -p python3 pygame # pindah ke direktori virtualenv cd pygmae # aktifkan virtual env . bin/activate # install modul pygame di dalam virtualenv pip install pygame3

Variabel sudo apt-get install python3-pygame21 nanti akan kita gunakan untuk menyimpan score yang didapatkan.

Sementara variabel sudo apt-get install python3-pygame22 akan menyimpan titik koordinat sudo apt-get install python3-pygame23 dari anak panah.

Berikutnya silahkan tambahkan objek sudo apt-get install python3-pygame24 pada langkah sudo apt-get install python3-pygame25:

# membuat virtual env virtualenv -p python3 pygame # pindah ke direktori virtualenv cd pygmae # aktifkan virtual env . bin/activate # install modul pygame di dalam virtualenv pip install pygame4

Sehingga menjadi seperti ini:

Setelah itu, tambahkan kode untuk event sudo apt-get install python3-pygame26 pada langkah ke sudo apt-get install python3-pygame27 di bawah event screen.blit(objek, posisi)6:

# membuat virtual env virtualenv -p python3 pygame # pindah ke direktori virtualenv cd pygmae # aktifkan virtual env . bin/activate # install modul pygame di dalam virtualenv pip install pygame5

Sehigga menjadi seperti ini:

Kita akan menambahkan koordinat arrow baru ke dalam list sudo apt-get install python3-pygame22. Koordinat tersebut akan menjadi titik start untuk menggambar panah.

Selanjutnya tambahkan kode ini untuk menggambar panahnya di langkah ke import pygame from pygame.locals import *4 tepat di bawah kode sudo apt-get install python3-pygame31:

# membuat virtual env virtualenv -p python3 pygame # pindah ke direktori virtualenv cd pygmae # aktifkan virtual env . bin/activate # install modul pygame di dalam virtualenv pip install pygame6

Sehingga akan menjadi seperti ini:

Perhatikan!

Variabel sudo apt-get install python3-pygame32 (velocity x) dan sudo apt-get install python3-pygame33 (velocity y) kita hitung dengan rumus trigonomotri sudo apt-get install python3-pygame34 dan sudo apt-get install python3-pygame35. Dua variabel ini akan menentukan kecepatan panah berpindah dari titik awal ke titik akhir.

Selanjutnya kita cek, apakah panah sudah mencapai batas layar atau tidak?

# membuat virtual env virtualenv -p python3 pygame # pindah ke direktori virtualenv cd pygmae # aktifkan virtual env . bin/activate # install modul pygame di dalam virtualenv pip install pygame7

Kalau sudah mencapai batas layar, kita hapus panahnya dari list dengan fungsi sudo apt-get install python3-pygame36 agar tidak memakan banyak memori.

Setelah itu kita increment nilai index panah (sudo apt-get install python3-pygame37) dan mulai menggambar berdasarkan angle player.

# membuat virtual env virtualenv -p python3 pygame # pindah ke direktori virtualenv cd pygmae # aktifkan virtual env . bin/activate # install modul pygame di dalam virtualenv pip install pygame8

Variabel sudo apt-get install python3-pygame38 akan berisi nilai koordinat awal panah yang didapatkan dari list sudo apt-get install python3-pygame22.

Sekarang coba eksekusi lagi Game-nya:

sudo apt-get install python3-pygame0

Maka hasilnya:

Wohooo~ 😍 keren!!

Wah, kamu sudah mengikuti 50% dari tutorial ini. Sisanya tinggal menambahkan musuh, collision, UI, dan audio.

Langkah 6: Membuat Musuh

Sekarang saatnya kita menggambar musuh. Caranya hampir sama dengan menggambar obejk yang lain.

Bedanya, kita akan menggambar pada titik # 1 - Import Library ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ import pygame from pygame.locals import * # 2 - Initialize the Game ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.init() width, height = 640, 480 screen = pygame.display.set_mode((width, height)) running = True playerpos = [100, 100] # initial position for player # 3 - Load Game Assets ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 3.1 - Load Images player = pygame.image.load("resources/img/dude.png") ## 4 - The Game Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while(running): # 5 - Clear the screen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.fill(0) # 6 - Draw the game object ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.blit(player, playerpos) # 7 - Update the sceeen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.display.flip() # 8 - Event Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for event in pygame.event.get(): # event saat tombol exit diklik if event.type == pygame.QUIT: pygame.quit() exit(0)9 secara acak.

Untuk menggambar secara acak, kita bisa menggunakan fungsi sudo apt-get install python3-pygame41 (random integer) untuk membuat bilangan acak.

Tujuan utama musuh adalah menyerang markas kelinci yang sudah kita buat.

Jadi nanti langkahnya akan menjadi seperti ini:

  1. Buat list untuk nampung musuh.
  2. Gambar musuh berdasarkan koordinat pada list.
  3. Buat musuh agar bergerak menuju markas kelinci.
  4. Hapus musuh saat sudah mencapai markas kelinci.

Baiklah, sekarang buka kembali file mygame/ └── game.py6. Lalu di langkah sudo apt-get install python3-pygame43 tambahkan kode berikut untuk mengimpor fungsi sudo apt-get install python3-pygame41:

>>> import pygame0

Setelah itu buat variabel global yang diperlukan untuk musuh, seperti list, dan waktu ia akan muncul.

Pada langkah ke screen.blit(objek, posisi)3 tambahkan kode ini:

>>> import pygame1

Sehingga akan menjadi seperti ini:

Variabel sudo apt-get install python3-pygame46 akan kita kurangi sudo apt-get install python3-pygame47 disetiap perulangan game loop. Lalu saat variabel ini mencapai nilai sudo apt-get install python3-pygame48 musuh akan keluar.

Berikutnya tambahkan kode ini untuk mengimpor gambar enemy di langkah sudo apt-get install python3-pygame49:

>>> import pygame2

Berikutnya silahkan tambahkan kode ini di bawah langkah sudo apt-get install python3-pygame50:

>>> import pygame3

Sehingga akan menjadi seperti ini:

Setelah itu, coba eksekusi lagi.

sudo apt-get install python3-pygame0

Maka hasilnya:

Yap! kita sudah berhasil menggambar musuh secara acak di titik # 1 - Import Library ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ import pygame from pygame.locals import * # 2 - Initialize the Game ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.init() width, height = 640, 480 screen = pygame.display.set_mode((width, height)) running = True playerpos = [100, 100] # initial position for player # 3 - Load Game Assets ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 3.1 - Load Images player = pygame.image.load("resources/img/dude.png") ## 4 - The Game Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while(running): # 5 - Clear the screen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.fill(0) # 6 - Draw the game object ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ screen.blit(player, playerpos) # 7 - Update the sceeen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pygame.display.flip() # 8 - Event Loop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for event in pygame.event.get(): # event saat tombol exit diklik if event.type == pygame.QUIT: pygame.quit() exit(0)9 dan waktu kemunculannya juga kita tentukan secara acak.

Saat ini musuh tidak bisa ditembak, karena kita belum membuat kode untuk menghapus musuh saat berbenturan dengan anak panah.

Langkah 7: Collision Detection

Kita sudah berhasil menambahkan player dan juga musuhnya. Namun, sayang musuh belum bisa ditembak.

Ini karena kita belum membuat kode untuk collision detection atau pendeteksian benturan.

Ada dua benturan yang harus kita buat:

  1. Benturan antara anak panah dengan musuh (muduh ditembak)
  2. Benturan antara musuh dengan markas kelinci (player di serang)

Mari kita buat…

Pada langkan ke import pygame from pygame.locals import *4 di bagian sudo apt-get install python3-pygame53 tambahkan kode ini dibawah hapus musuh:

>>> import pygame5

Sehingga akan menjadi seperti ini:

Setelah itu, coba eksekusi lagi dan perhatikanlah hasilnya:

Penjelasan:

Pertama kita membuat objek rectangle (segi emapat) dari objek-objek yang akan berbenturan:

  • sudo apt-get install python3-pygame54 adalah objek rectangle untuk musuh;
  • sudo apt-get install python3-pygame55 adalah objek rectangle untuk anak panah.

Kalau kita gambarkan akan terlihat seperti ini:

Setelah itu, kita buat kondisi saat musuh menabrak markas kelinci.

>>> import pygame6

Angka sudo apt-get install python3-pygame56 itu maksudnya saat musuh sudah mencapai titik sudo apt-get install python3-pygame57, maka dia harus menghilang dan itu artinya benteng atau markas player sedang diserang.

Lalu benturan beikutnya akan terjadi antara anak panah dengan musuh.

>>> import pygame7

Kita menggunakan fungsi sudo apt-get install python3-pygame58 untuk mendeteksi apakah anak panah berbenturan dengan musuh atau tidak.

Kenapa menggunakan fungsi ini?

Karena yang mau kita cek tidak hanya benturan dari satu sisi saja. Melainkan juga dari semua sisi rectangle musuh.

Misalkan kita tembak musuh dari belakang, maka itu akan dianggap benturan yang sah atau valid.

Kemudian, saat terjadi benturan, kita menambahkan sudo apt-get install python3-pygame59 untuk nilai sudo apt-get install python3-pygame21. Lalu menghapus anak panah dan musuh tersebut.

Langkah 8: Membuat HUD untuk Waktu dan Health Point

HUD (Heads Up Display)adalah sebuah tampilan untuk menyajikan data. Pada HUD, kita akan menampilkan data waktu dan health point untuk markas.

Silahkan buka file mygame/ └── game.py6 lalu tambahkan variabel ini di bawah variabel sudo apt-get install python3-pygame21 di langkah ke screen.blit(objek, posisi)3:

>>> import pygame8

Dua variabel di atas akan mnyimpan nilai awal untuk sudo apt-get install python3-pygame64 dan waktu game. Nilai sudo apt-get install python3-pygame65 kita berikan, karena di game asset sudo apt-get install python3-pygame66 memiliki lebar sudo apt-get install python3-pygame67.

Berikutnya tambahkan kode ini di langkah sudo apt-get install python3-pygame25:

>>> import pygame9

Sehingga akan menjadi seperti ini:

Setelah itu tambahkan kode ini pada langkah ke sudo apt-get install python3-pygame69 saat musuh menyentuh markas kelinci:

mkdir mygame touch mygame/game.py0

Shingga akan menjadi seperti ini:

Maksud kode di atas adalah mengurangi nilai sudo apt-get install python3-pygame70 saat markas diserang. Kurangi dengan bilangan acak dari sudo apt-get install python3-pygame71 sampai sudo apt-get install python3-pygame72.

Berikutnya kita akan gambar health bar dan waktu. Silahkan tambahkan kode ini pada langkah import pygame from pygame.locals import *4 tepat setelah menggambar musuh:

mkdir mygame touch mygame/game.py1

Sehingga akan menjadi seperti ini:

Untuk membuat teks di PyGame, kita bisa memanfaatkan objek sudo apt-get install python3-pygame74. Lalu nilai waktu count down untuk gamenya bisa kita dapatkan dari fungsi sudo apt-get install python3-pygame75.

Objek sudo apt-get install python3-pygame74 memiliki method sudo apt-get install python3-pygame77 untuk me-render teks ke layar game. Method ini memiliki tiga paramater yaitu:

  1. sudo apt-get install python3-pygame78 teks string yang akan ditampilkan, pada kode di atas kita memberikan sudo apt-get install python3-pygame79;
  2. sudo apt-get install python3-pygame80 agar teksnya terlihat mulus, pada kode di atas kita memberikan nilai sudo apt-get install python3-pygame81;
  3. Terakhir paramternya dalah nilai warna. Kita memberikan sudo apt-get install python3-pygame82 untuk warna putih.

Maka hasilnya akan seperti ini:

Langkah 9: Membuat Screen untuk Game Over

Sejauh ini game kita sudah berjalan dengan baik. Namun game-nya tidak akan pernah selesai alias Game Over.

Ada dua event yang akan menghakhiri game:

  1. Saat waktu habis (player menang)
  2. Saay sudo apt-get install python3-pygame64 bernilai sudo apt-get install python3-pygame48 (player kalah)

Mari kita buat…

Silahkan tambahkan kode berikut di atas variabel sudo apt-get install python3-pygame85:

mkdir mygame touch mygame/game.py2

Kemudian pada langkah sudo apt-get install python3-pygame25 tambahkan kode berikut:

mkdir mygame touch mygame/game.py3

Sehingga akan menjadi seperti ini:

Lalu di bagian akhir, di bawah langkah sudo apt-get install python3-pygame87 tambahkan kode ini:

mkdir mygame touch mygame/game.py4

Kode di atas berfungsi untuk mengecek apakah game sudah selesai atau tidak. Lalu menampilkan hasilnya.

Langkah 10: Menambahkan Musik dan Effek Suara

Wohoo… kita sudah sampai di langkah terakhir.

Nah, sekarang biar game-nya tidak sepi dan sunyi. Kita tambahkan background musik dan efek suara saat event tertentu.

Silahkan tambahkan kode berikut di langkah import pygame from pygame.locals import *1, tepatnya di bawah objek sudo apt-get install python3-pygame89:

mkdir mygame touch mygame/game.py5

Sehingga akan menjadi seperti ini:

Pada kode di atas, kita membuat objek audio berdasrakan file sudo apt-get install python3-pygame90 di asset.

Background music akan diputar terus menerus selama game dimainkan. Sedangkan efek suara akan diputar saat terjadi event teretntu.

Apakah Python bisa buat game?

Python dapat digunakan untuk pengembangan Web, Machine Learning, bahkan untuk pengembangan Game. Pengembangan Game dengan Bahasa Python saat ini sangatlah memungkinkan karena adanya sebuah modul yang memudahkan developer dalam membuat game.

Bahasa pemrograman apa yang digunakan untuk membuat game?

C++, JavaScript, dan Java menjadi bahasa pemrograman paling mumpuni untuk pengembangan game. Pengembangan aplikasi mobile. C++ dan Java bisa memberikan performa yang sangat baik untuk aplikasi mobile yang Anda buat.

Bagaimana cara untuk membuat game?

Apa Saja Langkah Cara Buat Game?.
Langkah 1: Lakukan Riset & Konseptualisasi Game Anda. ... .
Langkah 2: Buatlah Sebuah Dokumen Desain. ... .
Langkah 3: Menentukan Software. ... .
Langkah 4: Memulai Pemrograman. ... .
Langkah 5: Tes Game Anda & Mulailah Memasarkannya! ... .
JavaScript. ... .
Java. ... .
Swift..

Bagaimana cara belajar python?

Tips Belajar Python dengan Cepat.
Pahami dulu dasar bahasa pemrograman. Ada beberapa aspek penting terkait apa saja yang harus kamu pelajari dari sebuah bahasa pemrograman. ... .
Kuasai Bahasa Inggris. ... .
Mulai belajar sekarang. ... .
4. Coba buat program sederhana. ... .
Learning by doing..

Postingan terbaru

LIHAT SEMUA