Turinys:

Sukurkite savo pirmąjį lenktynių žaidimą: 10 žingsnių
Sukurkite savo pirmąjį lenktynių žaidimą: 10 žingsnių

Video: Sukurkite savo pirmąjį lenktynių žaidimą: 10 žingsnių

Video: Sukurkite savo pirmąjį lenktynių žaidimą: 10 žingsnių
Video: 1000 Prenumeratorių | KAS BUS TOLIAU - Žingsniai kaip išvengti pajamų atjungimo 2024, Lapkritis
Anonim
Image
Image
Vaizdas
Vaizdas

Jei kodavote „Python“ir norėjote parašyti žaidimą, kurį galbūt turite „Pygame Zero“.

Šioje pamokoje mes parašysime paprastą lenktynių žaidimą.

1 žingsnis: plati apžvalga

„Pygame“modulis prideda daug funkcijų, padedančių rašyti žaidimus „Python“.

„Pygame Zero“žengia dar vieną žingsnį, kad galėtumėte praleisti sudėtingą visų šių žaidimų kilpų kūrimo ir programos struktūros nustatymo procesą.

„Pygame Zero“yra puikus pasirinkimas visiems, norintiems pradėti rašyti kompiuterinius žaidimus „Raspberry Pi“ar bet kuriame „Linux“įrenginyje.

Jums reikės:

  • Mašina, kurioje veikia „Linux“OS
  • Redaktorius, skirtas rašyti python programą
  • Klaviatūra
  • Šiek tiek vaizduotės

Failai:

github.com/AhmNouira/-Racing-Game

2 žingsnis: Būtinos sąlygos

Pirmiausia naudoju nešiojamąjį kompiuterį su „Ubuntu 18.04“OS. Tada 8 veiksme paleisime žaidimą „Raspberry Pi“.

Prieš tęsdami šią mokymo programą, įsitikinkite, kad esate prisijungę kaip vartotojas, turintis sudo privilegijas.

„Python 3“pip įdiegimas

Pradėkite atnaujindami paketų sąrašą naudodami šią komandą:

sudo apt atnaujinimas

Norėdami įdiegti „Python 3“pip, naudokite šią komandą:

sudo apt įdiegti python3-pip

patikrinkite diegimą patikrindami „pip“versiją:

pip3 -versija

„Pygame Zero“diegimas

pip3 įdiegti pgzero -user

Tai taip pat įdiegs „Pygame“. Iš anksto sudaryti „Pygame“paketai

Taigi pirmas žingsnis jūsų kelyje bus atidaryti „Python 3 IDLE“arba mėgstamą „Python“redaktorių.

3 žingsnis: „Sveikas pasaulis“„Pygame Zero“

Pagal numatytuosius nustatymus „Pygame Zero“langas atidaromas 800 pikselių pločio ir 600 pikselių aukščio. Galite tinkinti

lango dydį, galite nustatyti du iš anksto nustatytus kintamuosius, jei įtraukiate WIDTH = 700 HIGH = 800.

„Pygame zero“suteikia iš anksto nustatytas funkcijas, skirtas žaidimo ciklui paprastai atlikti:

Funkcija draw ()

Šią funkciją galime įrašyti į savo programą taip pat, kaip įprastai apibrėžtume funkciją „Python“.

„Pygame Zero“laikosi tų pačių formatavimo taisyklių kaip ir „Python“, todėl turėsite pasirūpinti, kad kodas būtų įtrauktas teisingai.

#!/usr/bin/python3 # nustatykite vertėją

importuoti pgzrun # importuoti pgzero modulį WIDTH = 700 # lango plotis HEIGHT = 800 # lango aukštis def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # užpildyti ekraną spalvotas ekranas.draw.text ("Labas pasaulis!", (270, 320), # piešti "Labas pasaulis!" spalva = (255, 255, 255), fontsize = 40) pgzrun.go ()

Pirmiausia turite išsaugoti programos failą ir suteikti jam pavadinimą.

Tada atidarykite terminalo langą, eikite į savo failo vietą ir įveskite:

./.py

4 žingsnis: pieškite savo aktorių

Pieškite savo aktorių
Pieškite savo aktorių

Dabar, kai turime sceną, galime sukurti savo aktorius, jie yra dinamiški „Pygame Zero“objektai.

Mes galime įkelti aktorių įvesdami programos viršuje:

automobilis = aktorius („lenktyninis automobilis“)

„Pygame Zero“mūsų vaizdai turi būti saugomi kataloge, pavadintame „images“, šalia mūsų programos failo. Taigi mūsų aktorius ieškotų vaizdo failo vaizdų aplanke, vadinamame racecar.png. Tai gali būti GIF arba-j.webp

Galite nustatyti jo padėtį ekrane įvesdami:

automobilis.pos = 350, 560

Po to mūsų draw () funkcijoje galime įvesti

car.draw () # nupieškite mūsų lenktyninį automobilį nustatytoje vietoje

Visa programa bus tokia:

#!/usr/bin/python3

importuoti pgzrun WIDTH = 700 # lango plotis HEIGHT = 800 # lango automobilio aukštis = Actor ("racecar") car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # užpildykite ekraną automobiliu.draw () pgzrun.go ()

Išbandykite savo programą, kad įsitikintumėte, jog tai veikia.

5 žingsnis: valdykite aktorių

Kontroliuokite aktorių
Kontroliuokite aktorių

Kai ekrane parodysime savo automobilio piešinį, kitas etapas yra leisti žaidėjui jį perkelti.

Tai galime padaryti paspausdami klavišus. Šių klavišų būseną galime perskaityti kitoje iš anksto apibrėžtoje funkcijoje, vadinamoje update ().

Atnaujinimo () funkcija

Ši funkcija nuolat tikrinama žaidimo metu.

Turime parašyti tam tikrą kodą, kad galėtume aptikti rodyklių klavišų paspaudimus ir ką nors padaryti.

Taigi šią funkciją pridėsime prie savo programos

def atnaujinimas ():

jei klaviatūra. kairė: automobilis. x -= 2, jei klaviatūra. dešinė: automobilis. x += 2, jei klaviatūra. aukštyn: automobilis.y -= 2, jei klaviatūra. žemyn: automobilis.y += 2

Šios kodo eilutės perkelia automobilio aktorių į kairę, į dešinę, į priekį ir atgal.

6 žingsnis: kelio kūrimas

Trasos kūrimas
Trasos kūrimas

Dabar, kai turime automobilį, kurį galime vairuoti, mums reikia kelio, kuriuo jis galėtų važiuoti.

Mes ketiname kurti savo takelį iš aktorių, po vieną eilę. Turėsime sudaryti keletą sąrašų, kad galėtume sekti mūsų sukurtus aktorius.

Taip pat turėsime nustatyti dar kelis kintamuosius takeliui.

Tada sukurkime naują funkciją, pavadintą makeTrack (). Ši funkcija pridės vieną takelį Aktorius kairėje ir vieną dešinėje, abu naudodami vaizdą bare-p.webp

trackLeft = # sąrašas kairiesiems barjerams saugoti

trackRight = # sąrašas dešiniesiems bariams saugoti trackCount = 0 # skaičiuoti barių skaičių trackPosition = 350 trackWidth = 150 # plotis tarp kairės ir dešinės ribų def makeTrack (): # funkcija, skirta padaryti vieną juostą kairėje ir dešinėje visuotiniame takeCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount += 1

Kitas dalykas, kurį turime padaryti, yra perkelti takelio dalis ekrane žemyn link automobilio.

Parašykime naują funkciją, vadinamą updateTrack (), ši funkcija atnaujinama ten, kur bus rodomi takelių blokai. Takelio dalys sukuriamos atsitiktiniais skaičiais, todėl kiekvienas grojimas yra skirtingas.

trackDriction = Netiesa

SPEED = 4 # nustato žaidimo greitį nuo atsitiktinio importavimo 32: if trackDirection == False: trackPosition += 16 if trackDirection == True: trackPosition - = 16 if randint (0, 4) == 1: trackDirection = not trackDirection if trackPosition> 700 - trackWidth: trackDirection = Tiesa, jei trackPosition < trackWidth: trackDirection = False makeTrack () # sukurkite naują takelį ekrano viršuje

Žiūrėkite žemiau esantį ZIP failą pavadinimu „RaceGameDemo“.

Jei šiuo metu vykdome savo kodą, turėtume pamatyti takelį, nusileidžiantį automobilio link. Vienintelė problema yra ta, kad mes galime perkelti automobilį virš bėgių užtvarų ir norime, kad automobilis būtų jų viduje su tam tikru susidūrimo aptikimu.

7 žingsnis: automobilio avarija

Auto avarija
Auto avarija
Auto avarija
Auto avarija
Auto avarija
Auto avarija

Turime įsitikinti, kad mūsų automobilis neliečia aktorių.

taip pat galime išbandyti susidūrimus naudodami funkciją colliderect (), esantį mūsų „updateTrack“() funkcijoje.

Šiame žaidime mes turėsime tris skirtingas žaidimo būsenas, saugomas mūsų kintamame žaidimeStatus:

  • gameStatus == 0 # žaidimas veikia
  • gameStatus == 1 # automobilio avarija
  • gameStatus == 2 # žaidimas baigtas

Norėdami reaguoti į „gameStatus“kintamąjį, turėsime pakeisti „draw“() ir „update“() funkciją.

Apdailos darbai

Viskas, ką mums reikia padaryti, tai ką nors parodyti, jei „gameStatus“nustatyta į 1 arba 2, pavyzdžiui, turėtume rodyti raudoną

vėliava, jei automobilis sudužo. Tai galime padaryti naudodami žemiau esantį kodą:

screen.blit ("raudona vėliava", (230, 230))

Norėdami pamatyti, ar automobilis pasiekė finišą, turėtume suskaičiuoti, kiek trasos atkarpų buvo sukurta, ir galbūt, kai pasieksime 200, nustatykite „gameStatus“į 2. Tada parodykite languotą vėliavą:

screen.blit ("finishflag", (230, 230))

Taip pat ekrane parodysime tam tikrą tekstą, pvz., Dabartinį žaidimo rezultatą.

Peržiūrėkite visą kodų sąrašą, kad pamatytumėte, kaip visa tai dera.

8 veiksmas: paleiskite žaidimą „Raspberry Pi“

Paleiskite žaidimą „Raspberry Pi“
Paleiskite žaidimą „Raspberry Pi“
Paleiskite žaidimą „Raspberry Pi“
Paleiskite žaidimą „Raspberry Pi“

„Raspberry Pi“„pgzero“buvo įdiegta pagal numatytuosius nustatymus nuo „Raspbian Jessie“išleidimo 2015 m.

Tiesiog atnaujinkite „Raspberry Pi“naudodami komandą:

sudo apt-get atnaujinimas

Eikite į savo failo vietą ir įveskite terminalą.

pgzrun.py

9 žingsnis: Ar laimėjote?

Ar laimėjai?
Ar laimėjai?

Galite padaryti žaidimą lengvesnį ar sunkesnį, pakeisdami kintamąjį trackWidth, kad takelis būtų kitokio pločio. Galite pakeisti SPEED reikšmę, kad takelis judėtų greičiau arba lėčiau.

10 žingsnis: Išvada

„Pygame Zero“yra puikus pasirinkimas visiems, norintiems pradėti rašyti kompiuterinius žaidimus.

Žinoma, jei turite kokių nors klausimų, galite palikti komentarą. Norėdami pamatyti daugiau apie mano darbus, apsilankykite mano kanale:

myYouTube

myTwitter

myLinkedin

Ačiū, kad perskaitėte šią pamokomą medžiagą ^^ ir geros dienos. Iki. Ahmedas Nouira.

Rekomenduojamas: