Ustvarite poklon Excitebikeu z uporabo Pythona

Ustvarite poklon Excitebikeu z uporabo Pythona

Excitebike je igra s stranskim pomikanjem, kjer z motorjem krmarite čez skakalnice, manevrirate okoli ovir in hitite proti ciljni črti.





Nintendo je prvič lansiral to BMX dirkalno igro za NES. Od tam je podjetje posodobilo Excitebike in ga izdalo za N64 in sčasoma za Wii.





Ne obstaja več veliko konzol NES, zaradi česar je težko ponovno igrati Excitebike. Zahvaljujoč nekaterim retro oboževalcem pri reviji Wireframe Magazine lahko delček kode Python poustvari to klasiko NES za ure in ure zabave na vašem Raspberry Pi ali domačem računalniku.





kako izbrisati račun na ps4
MAKEUSEOF VIDEO DNEVA

Pridobivanje kode in nastavitev

Čeprav lahko za urejanje kode python uporabite nano ali vim, boste želeli izkoristiti vse funkcije urejevalnik besedil ali IDE .

Za podporo funkcij, vgrajenih v tem poklonu Excitebike, boste morali namestiti Pygame Zero. Pygame Zero vsebuje module Python, na katere se ustvarjalci iger lahko osredotočijo, ne da bi morali ponavljati preproste temelje.



Če v računalniku nimate nameščenega python3, lahko prenesite najnovejšo različico neposredno iz Pythona. Tudi vi boste želeli preverite, ali imate nameščen PIP preveč.

Z nameščeno najnovejšo različico Pythona in PIP odprite terminal PowerShell ali Linux in vnesite:





pip3 install pgzero 

Nazadnje boste morali pobrati kopijo kode Python iz repozitorija GitHub revije Wireframe. V terminal vnesite naslednji ukaz:

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

Lahko pa tudi prenesite stisnjeno kodo neposredno s strani Wireframe GitHub.





Razbijanje kode

Če želite razumeti, kaj počne koda, najprej zaženite igro Excitebike. To storite tako, da se pomaknete do izvorne kode in jo nato zaženete z uporabo Pygame Zero:

windows media player za windows 10 64 bit
cd Wireframe-66/source-code-excitebike/ 
pgzrun exitebike.py

Nato lahko odprete datoteko exitebike.py z urejevalnikom besedila, da si ogledate kodo.

  izrezek kode excitebike python

The pripraviti funkcija nariše ozadje med premikanjem slike kolesa. A ' ostati ' se nanaša na blok, ki je narisan na zaslonu. Beseda ' ozadje,' se nanaša na sliko ozadja (povezava slik z blokom ozadja je zahvaljujoč uvoženim modulom Pygame Zero).

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)

Opazili boste tudi izračune za čas kroga in zadnji krog (to predstavlja števec časa na dnu zaslona). Čas kroga nenehno izračuna razliko med začetnim pritiskom na tipko s puščico desno (začetni čas) in trenutnim časom.

Zadnji krog je podoben izračun. Namesto začetnega časa se čas izračuna od trenutka, ko motocikel prevozi vnaprej določen položaj proge (omenjen kot trackPos < -4800 v kodi). Spodnji elementi v narekovajih predstavljajo sliko.

Ta koda nariše slikovne bloke na zaslonu v določenih intervalih in na določenih mestih na zaslonu. Priložena slika množice je široka samo 100 slikovnih pik. Kljub temu spodnja koda pove računalniku, kdaj naj nariše sliko, tako da je videti, kot da je za motociklom med premikanjem simulirana množica.

Slike kamnin so na zaslonu prikazane v dveh delih. Druga in tretja vrstica kode spodaj delujeta skupaj, da simulirata pokrajino na urejen način.

Ko ustvarite varnostno kopijo kode python, poskusite spremeniti spodnje številke, da vidite, kaj se zgodi s kamni na zaslonu!

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

Ali želite svoj motor zamenjati za Monster truck, štirikolesnik ali drugo vozilo? Morda želite dirkati s samorogom do cilja?

Vse kar morate storiti je, da narišete sliko velikosti 50x50px (s prozornim ozadjem). Nato postavite to datoteko (picture.png) v ' slike ' (znotraj mape izvorna koda-excitebike mapa). Ustvariti boste želeli dve sliki (eno z nekoliko povečano višino), da dodate nekaj realizma. Vse, kar morate storiti, je spremeniti sklic na ' naredi tukaj:

bike = Actor('bike0', center=(150, 350), anchor=('center', 'bottom'))
  igra excitebike python s tovornjakom

Prepričajte se tudi, da izvedete dejanje iskanja in zamenjave z imenom slike (brez razširitve slike).

preveriBikeRamp() je funkcija, ki izračuna os Y, tako da se vaš motor (ali tovornjak) povzpne po klančini (in dobi resen zrak, če imate srečo). The tipkovnica.desno in tipkovnica.levo parametri so opredeljeni v nadgradnja() funkcijo.

Ti kodni bitji sporočajo računalniku, naj upočasni ali pospeši motocikel (odvisno od tega, katero tipko uporabnik pritisne na tipkovnici). Prevod: Hitreje kot se motor premika, večja je številka osi Y (ali zelo velik skok).

Prečno, on_key_down(tipka) funkcija bo vaš motocikel poslala v skok v nos.

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

The muckLane parameter bo upočasnil vaš motocikel z naslednjim izračunom:

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

Vrstica 66 kode določa, kdaj naj se na zaslonu prikaže 'muck' slika. Zdaj, ko računalnik ve, kdaj bo vaš motocikel zapeljal čez blato, bo za polovico upočasnil hitrost vašega motocikla, ko se premikate čez blato na stezi. Spremenite vrednost muckLane iz /50 v /25 ali /75, da vidite, kaj se bo zgodilo naslednje.

netflix, imamo težave pri igranju tega naslova

Dirkači (hm, Python programerji)! Zaženite svoje motorje!

Tudi če vam ni všeč programiranje tega poklona Excitebike iz nič, je ta koda še vedno odličen primer. S prilagajanjem in zavedanjem vizualnega učinka sprememb se lahko veliko naučite. Boste poskusili svoji igri dodati več funkcij ali dirkalnikov z umetno inteligenco? Pojdi!

Z malo vaje v Pythonu je še ena ideja, ki jo lahko preizkusite, dodajanje različnih stopenj, ko 4- ali 5-krat prečkate ciljno črto. Prav tako boste morda želeli dodati nagrade za prvo, drugo in tretje mesto. Če ste na prvem mestu, dodajte tudi zvočno datoteko za navijanje množice! Možnosti je toliko.

Ko ste zadovoljni s svojimi izboljšavami Excitebike, zakaj se ne bi lotili ustvarjanja besedilne pustolovske igre? Obstaja veliko različnih kosov, ki bodo zagotovili, da se boste nekaj razburljivega učili ure, dneve ali celo tedne!