Rajaprogram.com adalah web yang menyediakan tips dan program - program gratis.

Tutorial Cara Membuat Game 2D dengan Python dan Arcade - Membuat sebuah game dan menghasilkan uang adalah tujuan banyak orang, terutama ora...

Tutorial Cara Membuat Game 2D dengan Python dan Arcade

Tutorial Cara Membuat Game 2D dengan Python dan Arcade - Membuat sebuah game dan menghasilkan uang adalah tujuan banyak orang, terutama orang - orang yang suka program game, tidak hanya itu program yang diakui banyak orang tentu membuat sang pencipta game akan sangat amat senang.

Pada kesempatan kali ini rajaprogram.com ingin memberikan tutorial dasar yakni adalah membuat game 2D, ya meskipun 2d sudah sangat amat ketinggal diera yang sudah menggunakan 3D bahkan 4D, namun tidak sedikit orang masih menggunakan 2D. Sebelum kita masuk materi cara membuat game 2D menggunakan python dan arcade alangkah baiknya kita mengenal lebih dalam dulu tentang 2 nama tersebut.
https://www.rajaprogram.com/2018/08/membuat-game-2d-dengan-python.html

Apa Itu Phyton ?

Phyton sediri adalah aplikasi untuk membuat sebuah game, dan pengertian Python adalah bahasa pemrograman interpretatif multiguna. Tidak seperti bahasa lain yang susah untuk dibaca dan dipahami, python lebih menekankan pada keterbacaan kode agar lebih mudah untuk memahami sintaks. Hal ini membuat Python sangat mudah dipelajari baik untuk pemula maupun untuk yang sudah menguasai bahasa pemrograman lain.

Tutorial Cara Membuat Game 2D dengan Python dan Arcade

Kelas Window

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:


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:

on_draw: Seluruh kode untuk menggambar layar ditulis di sini.
update: Semua kode untuk memindahkan konten game ditulis disini. Fungsi ini akan dipanggil sekitar 60 kali tiap detik.
on_key_press: Mendeteksi setiap kali sebuah tombol ditekan.
on_key_release: Mendeteksi saat sebuah tombol dilepas setelah ditekan.
on_mouse_motion: Dipanggil setiap kali mouse bergerak.
on_mouse_press: Dipanggil saat tombol mouse di tekan.
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.

Membuat sebuah sprite

Membuat sebuah instance kelas Sprite Arcade sangat mudah. Programmer hanya memerlukan nama file dari gambar yang ingin ditampilkan, lalu sebuah angka untuk mengskalakan (memperbesar atau memperkecil berdasarkan rasio). Misal:


Kode ini akan membuat sebuah sprite menggunakan gambar yang disimpan di file coin_01.png. Gambar ini akan diperkecil menjadi 20% dari ukuran aslinya.

Spites Lists


Sprites biasanya dikelompokkan kedalam list. List ini dibuat untuk mempermudah manajemen sprites tersebut. Sprites di dalam lists menggunakan OpenGL untuk melakukan batch-draw sprites sebagai group. Kode di bawah menyiapkan sebuah game dengan satu karakter pemain, dan beberapa koin yang bisa diambil oleh pemain. Kita memiliki dua list, satu untuk karakter pemain dan satu lagi untuk koin.


Kita lalu bisa menggambar semua koin di dalam lists:


Mendeteksi tabrakan sprite

Fungsi check_for_collision_with_lists memungkinkan kita untuk mendeteksi apakah ada sebuah sprite yang bertabrakan dengan sprite lain di dalam sebuah list. Kita bisa memanfaatkannya untuk mengetahui koin dan disentuh oleh pemain. Dengan menggunakan forloop, kita bisa menghapus koin dari game (untuk koin yang disentuh) dan menaikkan skor.



Model Physics Pada Game

Banyak game memiliki fitur physics untuk mensimulasikan gravitasi atau "efek nyata" lainnya. Misal, kita mungkin tidak ingin pemain untuk melewati sebuah dinding.