Buat Penghormatan untuk Excitebike Menggunakan Python

Buat Penghormatan untuk Excitebike Menggunakan Python

Excitebike adalah gim side-scroller di mana Anda menavigasi sepeda motor melewati lompatan, bermanuver di sekitar rintangan, dan mempercepat menuju garis finish.





Nintendo pertama kali meluncurkan game balap BMX ini untuk NES. Dari sana, perusahaan memodernisasi Excitebike dan merilisnya di N64 dan, akhirnya, Wii.





Tidak banyak konsol NES yang ada lagi, yang membuat bermain Excitebike kembali sulit didapat. Terima kasih kepada beberapa penggemar retro di Wireframe Magazine, potongan kode Python dapat membuat ulang NES klasik ini selama berjam-jam bersenang-senang di Raspberry Pi atau PC rumahan Anda.





VIDEO MAKEUSEOF HARI INI

Mendapatkan Kode dan Pengaturan

Meskipun Anda dapat menggunakan nano atau vim untuk mengedit kode python Anda, Anda akan ingin memanfaatkan fitur lengkap editor teks atau IDE .

Anda harus menginstal Pygame Zero untuk mendukung fitur yang dibangun dalam penghormatan ini kepada Excitebike. Pygame Zero berisi modul Python agar pembuat game dapat fokus tanpa harus mengulang fondasi sederhana.



Jika Anda belum menginstal python3 di PC Anda, Anda dapat unduh versi terbaru dari Python secara langsung. Anda juga ingin pastikan Anda telah menginstal PIP juga.

Dengan versi terbaru Python dan PIP terinstal, buka terminal PowerShell atau Linux Anda dan ketik:





pip3 install pgzero 

Terakhir, Anda perlu mengambil salinan kode Python dari repositori GitHub majalah Wireframe. Ketik perintah berikut ke terminal:

git clone https://github.com/Wireframe-Magazine/Wireframe-66.git

Atau, Anda bisa unduh kode zip-up langsung dari halaman Wireframe GitHub.





Memecah Kode

Untuk memahami apa yang dilakukan kode tersebut, jalankan terlebih dahulu game Excitebike. Lakukan dengan menavigasi ke kode sumber dan kemudian menjalankannya menggunakan Pygame Zero:

cd Wireframe-66/source-code-excitebike/ 
pgzrun exitebike.py

Anda kemudian dapat membuka file exitebike.py dengan editor teks untuk melihat kodenya.

bagaimana cara membuat mod minecraft?
  cuplikan kode python excitebike

Itu seri fungsi menggambar latar belakang saat gambar sepeda bergerak. SEBUAH ' tinggal ' mengacu pada blok yang digambar di layar. Kata, ' Latar Belakang,' mengacu pada gambar latar belakang (menghubungkan gambar ke blok latar belakang berkat modul Pygame Zero yang diimpor).

def draw(): 
screen.blit("background", (0, 0))
drawTrack()
bike.draw()
screen.draw.text("LAP TIME: "+str(int(time.time() - startTime)), (20, 555),color=(255,255,255) , fontsize=50)
screen.draw.text("LAST LAP: "+str(lastLap), topright = (780, 555),color=(255,255,255) , fontsize=50)

Anda juga akan melihat perhitungan untuk waktu putaran dan putaran terakhir (ini diwakili oleh penghitung waktu di bagian bawah layar). Waktu putaran secara konstan menghitung perbedaan antara penekanan tombol panah kanan awal (waktu mulai) dan waktu saat ini.

Putaran terakhir adalah perhitungan serupa. Alih-alih waktu mulai, waktu dihitung dari saat sepeda motor melewati posisi lintasan yang telah ditentukan (disebut sebagai trackPos < -4800 dalam kode). Item di bawah dalam tanda kutip mewakili sebuah gambar.

Kode ini menggambar blok gambar di layar pada interval tertentu dan posisi tertentu di layar. Gambar kerumunan yang disediakan hanya selebar 100px. Namun, kode di bawah ini memberi tahu komputer kapan harus menggambar gambar sehingga tampak seolah-olah ada kerumunan simulasi di belakang sepeda motor saat sepeda itu bergerak.

Gambar batu ditampilkan di layar dalam dua bagian. Baris kode kedua dan ketiga, di bawah, bekerja sama untuk mensimulasikan pemandangan dengan rapi.

Setelah Anda membuat salinan cadangan kode python, coba ubah angka di bawah ini untuk melihat apa yang terjadi pada batu di layar!

screen.blit("crowd1", ((t*100)+trackOffset-100, 0)) 
screen.blit("rock1", ((t*100)+trackOffset-100, 270))
screen.blit("rock1", ((t*100)+trackOffset-50, 270))

Apakah Anda ingin mengganti sepeda motor Anda dengan truk Monster, roda empat, atau kendaraan lain? Mungkin Anda ingin balapan unicorn ke garis finish?

Yang perlu Anda lakukan adalah menggambar gambar 50x50px (dengan latar belakang transparan). Kemudian, tempatkan file ini (picture.png) ke dalam ' gambar-gambar folder ' (di dalam source-code-excitebike map). Anda ingin membuat dua gambar (satu dengan ketinggian yang sedikit lebih tinggi) untuk menambahkan beberapa realisme. Yang perlu Anda lakukan hanyalah mengubah referensi ke ' lakukan di sini:

bike = Actor('bike0', center=(150, 350), anchor=('center', 'bottom'))
  permainan python excitebike dengan truk

Pastikan juga untuk melakukan tindakan temukan dan ganti dengan nama gambar (tanpa ekstensi gambar).

periksaSepedaRamp() adalah fungsi yang bekerja untuk menghitung sumbu Y agar sepeda motor (atau truk) Anda naik ke tanjakan (dan mendapat angin yang serius jika Anda beruntung). Itu keyboard.right dan keyboard.kiri parameter didefinisikan dalam memperbarui() fungsi.

Bit kode ini memberi tahu komputer untuk memperlambat atau mempercepat sepeda motor (tergantung pada tombol apa yang ditekan pengguna pada keyboard). Terjemahan: Semakin cepat sepeda motor Anda bergerak, semakin tinggi jumlah sumbu Y (atau lompatan yang sangat besar).

Secara melintang, on_key_down(kunci) fungsi akan mengirim sepeda motor Anda menjadi menukik.

if key.name == "DOWN": 
bike.direction = 1
bike.laneY = limit(bike.laneY + 50, 375, 525)
bike.y += bike.direction

Itu jalur kotoran parameter akan memperlambat sepeda motor Anda menggunakan perhitungan berikut:

muckLane = int((bike.laneY-375)/50)+1

Baris 66 dari kode menentukan kapan harus menampilkan gambar 'kotoran' di layar. Sekarang komputer tahu kapan sepeda motor Anda akan melewati kotoran, itu akan memperlambat kecepatan sepeda motor Anda menjadi dua saat Anda bergerak di atas kotoran di trek. Ubah nilai muckLane dari /50 menjadi /25 atau /75 untuk melihat apa yang terjadi selanjutnya.

layanan pengiriman makanan mana yang paling banyak membayar?

Pembalap (ahem, Pemrogram Python)! Mulai Mesin Anda!

Bahkan jika Anda tidak nyaman memprogram penghormatan ini kepada Excitebike dari awal, kode ini masih merupakan primer yang bagus. Dengan mengutak-atiknya, dan menyadari dampak visual dari perubahannya, Anda bisa belajar banyak. Apakah Anda akan mencoba menambahkan lebih banyak fitur atau pembalap AI di game Anda? Pergi untuk itu!

Dengan sedikit latihan Python di bawah ikat pinggang Anda, ide lain untuk Anda coba adalah menambahkan level yang berbeda setelah Anda melewati garis finish setelah 4 atau 5 kali. Selain itu, Anda mungkin ingin menambahkan hadiah untuk tempat pertama, kedua, dan ketiga. Jika Anda berada di posisi pertama, tambahkan juga file audio sorakan penonton! Ada begitu banyak kemungkinan.

Jika Anda senang dengan peningkatan Excitebike Anda, mengapa tidak mencoba membuat game petualangan teks? Ada banyak bagian berbeda yang akan memastikan Anda mempelajari sesuatu yang menarik selama berjam-jam, berhari-hari, atau bahkan berminggu-minggu!