Izveidojiet cieņu Excitebike, izmantojot Python

Izveidojiet cieņu Excitebike, izmantojot Python

Excitebike ir sānu ritināšanas spēle, kurā varat pārvietoties ar motociklu pāri lēcieniem, manevrēt ap šķēršļiem un virzīties uz finiša līniju.





Nintendo pirmo reizi uzsāka šo BMX sacīkšu spēli NES. Pēc tam uzņēmums modernizēja Excitebike un izlaida to N64 un, visbeidzot, Wii.





Vairs nav daudz NES konsoļu, tāpēc Excitebike atkal ir grūti atrast. Pateicoties dažiem retro cienītājiem žurnālā Wireframe Magazine, Python koda fragments var atjaunot šo NES klasiku, lai jūs varētu stundām ilgi izklaidēties jūsu Raspberry Pi vai mājas datorā.





DIENAS VIDEO MAKEUSEOF

Koda iegūšana un iestatīšana

Lai gan varat izmantot nano vai vim, lai rediģētu savu Python kodu, jūs vēlēsities izmantot visas iespējas teksta redaktors vai IDE .

Jums būs jāinstalē Pygame Zero, lai atbalstītu funkcijas, kas izveidotas šajā Excitebike godā. Pygame Zero satur Python moduļus, lai spēļu veidotāji varētu koncentrēties, neatkārtojot vienkāršus pamatus.



Ja jūsu datorā nav instalēta python3, varat lejupielādēt jaunāko versiju tieši no Python. Jūs arī vēlaties pārliecinieties, vai ir instalēts PIP arī.

Kad ir instalēta jaunākā Python un PIP versija, atveriet savu PowerShell vai Linux termināli un ierakstiet:





pip3 install pgzero 

Visbeidzot, jums būs jāpaņem Python koda kopija no žurnāla Wireframe GitHub repozitorijas. Terminālī ierakstiet šādu komandu:

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

Alternatīvi, jūs varat lejupielādējiet pasta indeksu tieši no Wireframe GitHub lapas.





Koda sadalīšana

Lai saprastu, ko dara kods, vispirms palaidiet spēli Excitebike. Dariet to, pārejot uz avota kodu un pēc tam palaižot to, izmantojot Pygame Zero:

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

Pēc tam varat atvērt failu exitebike.py ar teksta redaktoru, lai skatītu kodu.

  excitebike python koda fragments

The izdarīt funkcija zīmē fonu, velosipēda attēlam pārvietojoties. A ' palikt ' attiecas uz bloku, kas ir uzzīmēts uz ekrāna. Vārds ' fons' attiecas uz fona attēlu (attēlu saistīšana ar fona bloku notiek, pateicoties importētajiem Pygame Zero moduļiem).

mājas vēsture pēc adreses
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)

Jūs pamanīsit arī apļa laika un pēdējā apļa aprēķinus (to attēlo laika skaitītājs ekrāna apakšā). Apļa laiks pastāvīgi aprēķina starpību starp sākotnējo labās bultiņas taustiņa nospiešanu (sākuma laiks) un pašreizējo laiku.

Pēdējais aplis ir līdzīgs aprēķins. Starta laika vietā laiks tiek aprēķināts no brīža, kad motocikls šķērso iepriekš noteiktu trases pozīciju (minēta kā trackPos < -4800 kodā). Tālāk norādītie vienumi pēdiņās attēlo attēlu.

Šis kods zīmē attēlu blokus uz ekrāna noteiktos intervālos un noteiktās pozīcijās uz ekrāna. Piegādātais pūļa attēls ir tikai 100 pikseļus plats. Tomēr tālāk esošais kods norāda datoram, kad ir jāzīmē attēls, lai tas izskatītos tā, it kā aiz motocikla, kas pārvietojas, ir imitēts pūlis.

Iežu attēli tiek parādīti ekrānā divās daļās. Otrā un trešā koda rindiņa, kas atrodas zemāk, darbojas kopā, lai kārtīgi imitētu ainavu.

Kad esat izveidojis python koda rezerves kopiju, mēģiniet mainīt tālāk norādītos skaitļus, lai redzētu, kas notiek ar akmeņiem ekrānā!

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

Vai vēlaties nomainīt savu motociklu pret Monster truck, četrriteņu transportlīdzekli vai citu transportlīdzekli? Varbūt vēlies sacensties ar vienradzi līdz finišam?

Viss, kas jums jādara, ir uzzīmēt 50x50 pikseļu attēlu (ar caurspīdīgu fonu). Pēc tam ievietojiet šo failu (picture.png) mapē attēlus mapē (iekšpusē pirmkods-excitebike mape). Lai pievienotu reālismu, vēlēsities izveidot divus attēlus (vienu ar nedaudz palielinātu augstumu). Viss, kas jums jādara, ir jāmaina atsauce uz ' dari to šeit:

bike = Actor('bike0', center=(150, 350), anchor=('center', 'bottom'))
  excitebike python spēle ar kravas automašīnu

Noteikti veiciet arī atrašanas un aizstāšanas darbību ar attēla nosaukumu (bez attēla paplašinājuma).

checkBikeRamp() ir funkcija, kas veic darbu, lai aprēķinātu Y asi, lai jūsu motocikls (vai kravas automašīna) uzbrauktu pa rampu (un, ja paveicas, saņemtu nopietnu gaisu). The tastatūra.pa labi un tastatūra.pa kreisi parametri ir noteikti Atjaunināt() funkciju.

Šie koda biti liek datoram palēnināt vai paātrināt motociklu (atkarībā no tā, kādu taustiņu lietotājs nospiež uz tastatūras). Tulkojums: Jo ātrāk pārvietojas jūsu motocikls, jo lielāks ir Y ass numurs (vai ļoti liels lēciens).

Šķērsvirzienā, on_key_down(taustiņa) funkcija nosūtīs jūsu motociklu degungalā.

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

The muckLane parametrs palēninās jūsu motociklu, izmantojot šādu aprēķinu:

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

Koda 66. rindiņa nosaka, kad ekrānā jāparāda “muck” attēls. Tagad, kad dators zina, kad jūsu motocikls brauks pāri netīrumiem, tas samazinās jūsu motocikla ātrumu uz pusi, pārvietojoties pa netīrumiem. Mainiet muckLane vērtību no /50 uz /25 vai /75, lai redzētu, kas notiks tālāk.

Sacīkšu braucēji (ah, Python programmētāji)! Iedarbiniet savus dzinējus!

Pat ja jums nav ērti ieprogrammēt šo Excitebike cieņu no nulles, šis kods joprojām ir lielisks pamats. Pielāgojot to un apzinoties izmaiņu vizuālo ietekmi, jūs varat daudz uzzināt. Vai mēģināsit savai spēlei pievienot vairāk funkciju vai AI braucēju? Dari tā!

Nedaudz praktizējot Python, vēl viena ideja, ko varat izmēģināt, ir pievienot dažādus līmeņus, kad esat šķērsojis finiša līniju pēc 4 vai 5 reizēm. Tāpat, iespējams, vēlēsities pievienot balvas par pirmo, otro un trešo vietu. Ja esat pirmajā vietā, pievienojiet arī pūli uzmundrinošu audio failu! Ir tik daudz iespēju.

Kad esat apmierināts ar saviem Excitebike uzlabojumiem, kāpēc gan neizmantot teksta piedzīvojumu spēles izveidi? Ir daudz dažādu priekšmetu, kas nodrošinās, ka stundām, dienām vai pat nedēļām mācāties kaut ko aizraujošu!

peli veic dubultklikšķi uz viena klikšķa