INHOUDSOPGAWE:
- Stap 1: die breë oorsig
- Stap 2: Voorvereistes
- Stap 3: "Hello World" in Pygame Zero
- Stap 4: Teken jou akteur
- Stap 5: Beheer die akteur
- Stap 6: Bou die baan
- Stap 7: Motorongeluk
- Stap 8: Begin die spel op Raspberry Pi
- Stap 9: Het jy gewen?
- Stap 10: Gevolgtrekking
Video: Skep u eerste resiespel: 10 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
As u Python -kodering gedoen het en 'n speletjie wou skryf wat u moontlik in Pygame Zero het.
In hierdie handleiding skryf ons 'n eenvoudige resiespel.
Stap 1: die breë oorsig
Die Pygame -module voeg baie funksies by wat u help om speletjies in Python te skryf.
Pygame Zero gaan 'n stap verder om u te laat oorslaan van die omslagtige proses om al die speletjielusse te maak en u programstruktuur op te stel.
Pygame Zero is 'n uitstekende keuse vir almal wat rekenaarspeletjies op die Raspberry Pi of enige Linux -masjien wil begin skryf.
U benodig:
- Masjien wat Linux bedryfstelsel bedryf
- Redakteur om python -program te skryf
- Sleutelbord
- Bietjie verbeelding
Lêers:
github.com/AhmNouira/-Racing-Game
Stap 2: Voorvereistes
Eerstens gebruik ek my skootrekenaar met Ubuntu 18.04 OS. Dan sal ons die spel op Raspberry Pi in stap 8 uitvoer.
Voordat u met hierdie tutoriaal voortgaan, moet u seker wees dat u aangemeld is as 'n gebruiker met sudo -voorregte.
Installeer pip vir Python 3
Begin deur die pakketlys op te dateer met die volgende opdrag:
sudo apt -opdatering
Gebruik die volgende opdrag om pip vir Python 3 te installeer:
sudo apt installeer python3-pip
verifieer die installasie deur die pip -weergawe na te gaan:
pip3 -weergawe
Die installering van Pygame Zero
pip3 installeer pgzero --user
Dit sal ook Pygame installeer. Vooraf saamgestelde Pygame-pakkette
Die eerste stap op u reis is dus om die Python 3 IDLE of u gunsteling python -redakteur oop te maak.
Stap 3: "Hello World" in Pygame Zero
Die Pygame Zero -venster word standaard oopgemaak met 'n grootte van 800 pixels breed en 600 pixels hoog. U kan aanpas
die grootte van u venster, is daar twee voorafbepaalde veranderlikes wat u kan stel, as u WIDTH = 700 HIGH = 800 insluit.
Pygame zero bied vooraf gedefinieerde funksies om die spellus te hanteer wat normaalweg uitgevoer word:
Die trekking () Funksie
Ons kan hierdie funksie in ons program inskryf soos wat ons normaalweg 'n funksie in Python sou definieer.
Pygame Zero volg dieselfde opmaakreëls as Python, dus moet u sorg dat u u kode korrek inspring.
#!/usr/bin/python3 # stel die tolk in
invoer pgzrun # invoer pgzero module WIDTH = 700 # breedte van die venster HEIGHT = 800 # hoogte van die venster def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # vul die skerm met RGB kleur screen.draw.text ("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()
Eerstens moet u u programlêer stoor en 'n naam gee.
Maak dan 'n Terminal -venster oop, gaan na u lêer se ligging en tik:
./.py
Stap 4: Teken jou akteur
Noudat ons ons verhoog opgestel het, kan ons ons akteurs skep, dit is dinamiese voorwerpe in Pygame Zero.
Ons kan 'n akteur laai deur die bokant van die program in te tik:
motor = akteur ("renwa")
In Pygame Zero moet ons beelde langs ons programlêer in 'n gids genaamd images gestoor word, so ons akteur soek 'n beeldlêer in die prentemap met die naam racecar.png. Dit kan 'n GIF- of 'n JPG-lêer wees, maar dit word aanbeveel dat u beelde 'n PNG-lêer is, aangesien die lêertipe goeie kwaliteit beelde bied met transparante.
U kan die posisie op die skerm stel deur te tik:
motor.pos = 350, 560
Daarna kan ons in ons teken () funksie tik
car.draw () # trek ons renmotor op sy gedefinieerde posisie
Die volledige program sal soos volg wees:
#!/usr/bin/python3
invoer pgzrun WIDTH = 700 # breedte van die venster HEIGHT = 800 # hoogte van die venster car = Actor ("racecar") car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # vul die skerm met car.draw () pgzrun.go ()
Toets u program om seker te maak dat dit werk.
Stap 5: Beheer die akteur
Sodra ons ons motor op die skerm teken, is die volgende fase om die speler in staat te stel om dit te beweeg.
Ons kan dit doen met die druk van die toets. Ons kan die toestand van hierdie sleutels in 'n ander vooraf gedefinieerde funksie genaamd update () lees.
Die funksie update ()
Hierdie funksie word voortdurend nagegaan terwyl die spel aan die gang is.
Ons moet 'n kode skryf om die druk van die pyltjie sleutels op te spoor en ook iets daaraan te doen.
Dus sal ons hierdie funksie by ons program voeg
def update ():
as sleutelbord.links: motor.x -= 2 as sleutelbord.regs: motor.x += 2 as sleutelbord.op: motor.y -= 2 as sleutelbord.onder: motor.y += 2
Hierdie kode lyne sal die motorakteur na links, regs, vorentoe en agtertoe beweeg.
Stap 6: Bou die baan
Noudat ons 'n motor het wat ons kan bestuur, het ons 'n baan nodig om op te ry.
Ons gaan ons baan uit Actors bou, een ry op 'n slag. Ons sal 'n paar lyste moet maak om tred te hou met die akteurs wat ons skep.
Ons sal ook nog 'n paar veranderlikes vir die snit moet opstel.
Dan maak ons 'n nuwe funksie genaamd makeTrack (). Die funksie voeg een snit akteur links en een regs by, beide met behulp van die beeld bare-p.webp
trackLeft = # lys om linkerbars op te slaan
trackRight = # lys om regte barries op te slaan trackCount = 0 # tel die aantal barries trackPosition = 350 trackWidth = 150 # breedte tussen links en regs barries def makeTrack (): # funksie om een barrie aan die linker en regter globale trackCount te maak, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount += 1
Die volgende ding wat ons moet doen, is om die gedeeltes van die baan op die skerm na die motor te skuif.
Kom ons skryf 'n nuwe funksie genaamd updateTrack (), hierdie funksie werk op waar die snitblokke sal verskyn. Die snitstukke word deur ewekansige getalle geskep, sodat elke spel anders is.
trackDriction = Onwaar
SPEED = 4 # stel die spoed van die spel in vanaf willekeurige invoer randint # invoer die randint -klas uit random module def updateTrack (): globale trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 terwyl b
Verwys na die zip -lêer hieronder met die naam "RaceGameDemo".
As ons tans ons kode gebruik, moet ons 'n baan sien wat na die motor afdraai. Die enigste probleem is dat ons die motor oor die spoorgrense kan beweeg, en ons wil die motor daarin hou met 'n paar botsingsopsporing.
Stap 7: Motorongeluk
Ons moet seker maak dat ons motor nie die baan Actors raak nie.
ons kan ook toets vir botsings met behulp van die metode colliderect () in ons updateTrack () -funksie.
In hierdie spel het ons drie verskillende toestande vir die spel wat in ons veranderlike gameStatus gestoor is:
- gameStatus == 0 # spel is aan die gang
- gameStatus == 1 # motorongeluk
- gameStatus == 2 # spel klaar
Ons sal ons draw () funksie en ons update () funksie moet verander om te reageer op die gameStatus veranderlike.
Afwerking
Al wat ons nou moet doen, is om iets te vertoon as gameStatus op 1 of 2 is, byvoorbeeld, ons moet 'n rooi
vlag, as die motor neergestort het. Ons kan dit doen met die onderstaande kode:
screen.blit ("redflag", (230, 230))
Om te sien of die motor die eindpunt bereik het, moet ons tel hoeveel snitafdelings daar gemaak is, en dan, as ons by 200 kom, stel GameStatus op 2. Dan wys die geruite vlag:
screen.blit ("finishflag", (230, 230))
Ons sal ook teks op die skerm vertoon, soos die huidige telling van die spel.
Kyk na die volledige kodelys om te sien hoe dit alles bymekaar pas.
Stap 8: Begin die spel op Raspberry Pi
Op Raspberry Pi is pgzero standaard geïnstalleer sedert die vrystelling van Raspbian Jessie in September 2015.
Dateer net u Raspberry Pi op met die opdrag:
sudo apt-get update
Gaan na u lêer se ligging en tik die Terminal in.
pgzrun.py
Stap 9: Het jy gewen?
U kan die spel makliker of moeiliker maak deur die trackWidth -veranderlike te verander om die baan 'n ander breedte te maak. U kan die waarde van SPEED verander om die baan vinniger of stadiger te laat beweeg.
Stap 10: Gevolgtrekking
Pygame Zero is 'n uitstekende keuse vir almal wat rekenaarspeletjies wil begin skryf.
As u enige vrae het, kan u natuurlik 'n opmerking lewer. Vir meer inligting oor my werke, besoek my kanaal:
myYouTube
myTwitter
myLinkedin
Dankie dat u hierdie instruksies gelees het ^^ en 'n aangename dag. Sien jou. Ahmed Nouira.
Aanbeveel:
NodeMcu ESP8266 Eerste keer opgestel met Arduino IDE: 10 stappe
NodeMcu ESP8266 Eerste opstelling met Arduino IDE: ek maak toestelle wat deur Twitch beheer word; persoonlike konsoles, beheerders en ander uitvindings! Regstreekse strome is elke Woensdag en Saterdag om 21:00 EST op https://www.twitch.tv/noycebru, hoogtepunte op TikTok @noycebru, en u kan tutoriale kyk op YouT
Skep u eerste webwerf: 10 stappe
Die skep van u eerste webwerf: in hierdie tutoriaal leer u hoe u 'n basiese webwerf met 'n gekoppelde stylblad en interaktiewe javascript -lêer kan bou
Pixel Kit met MicroPython: eerste stappe: 7 stappe
Pixel Kit met MicroPython: eerste stappe: die reis om die volle potensiaal van Kano's Pixel te ontsluit, begin met die vervanging van die fabrieks -firmware deur MicroPython, maar dit is slegs die begin. Om die Pixel Kit te kodeer, moet ons ons rekenaars daaraan koppel. Hierdie handleiding sal verduidelik wat
Skep u eerste program in Visual Basic: 7 stappe
Skep u eerste program in Visual Basic: hierdie instruksies sal u wys hoe u Microsoft Visual Basic 2005 Express Edition kan programmeer. Die voorbeeld wat u vandag sal skep, is 'n eenvoudige beeldbeskouer. As u van hierdie instruksies hou, druk dan op die + -knoppie bo -aan die instruksies. Dankie
Die resiespel in kras programmeer: 7 stappe
Die racing game in Scratch programmeer: Hierdie tutoriaal sal jou wys hoe om 'n resiespel in MIT's Scratch te programmeer