Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Nëse keni bërë disa kodime Python dhe keni dashur të shkruani një lojë që mund të keni në Pygame Zero.
Në këtë tutorial ne do të shkruajmë një lojë të thjeshtë garash.
Hapi 1: Vështrim i gjerë
Moduli Pygame shton shumë funksione që ju ndihmojnë të shkruani lojëra në Python.
Pygame Zero shkon një hap më tej për t'ju lejuar të kaloni procesin e rëndë të krijimit të të gjitha atyre sytheve të lojës dhe vendosjen e strukturës tuaj të programit.
Pygame Zero është një zgjedhje e shkëlqyeshme për këdo që dëshiron të fillojë të shkruajë lojëra kompjuterike në Raspberry Pi ose ndonjë makinë Linux.
Ju do të keni nevojë:
- Makinë që funksionon me Linux OS
- Redaktor për të shkruar programin python
- Tastierë
- Pak imagjinatë
Dosjet:
github.com/AhmNouira/-Racing-Game
Hapi 2: Parakushtet
Së pari unë do të përdor laptopin tim me Ubuntu 18.04 OS. Pastaj ne do ta drejtojmë lojën në Raspberry Pi në hapin 8.
Para se të vazhdoni me këtë mësim, sigurohuni që të jeni regjistruar si përdorues me privilegje sudo.
Instalimi i pipit për Python 3
Filloni duke përditësuar listën e paketave duke përdorur komandën e mëposhtme:
sudo apt përditësim
Përdorni komandën e mëposhtme për të instaluar pip për Python 3:
sudo apt instaloni python3-pip
verifikoni instalimin duke kontrolluar versionin pip:
pip3 -përmbysje
Instalimi i Pygame Zero
pip3 install pgzero -përdorues
Kjo gjithashtu do të instalojë Pygame. Pakot e para-përpiluara të Pygame
Pra, hapi i parë në udhëtimin tuaj do të jetë hapja e Python 3 IDLE ose redaktorit tuaj të preferuar të python.
Hapi 3: "Përshëndetje Botë" në Pygame Zero
Si parazgjedhje, dritarja Pygame Zero hapet në madhësinë 800 piksela të gjerë dhe 600 pikselë të lartë. Mund të personalizoni
madhësia e dritares suaj, ka dy variabla të paracaktuar që mund të vendosni, nëse përfshini WIDTH = 700 HIGH = 800.
Pygame zero siguron funksione të paracaktuara për të trajtuar ciklin e lojës që normalisht kryen:
Funksioni barazim ()
Ne mund ta shkruajmë këtë funksion në programin tonë njësoj siç do të përcaktonim normalisht një funksion në Python.
Pygame Zero ndjek të njëjtat rregulla të formatimit si Python, kështu që do t'ju duhet të kujdeseni që të vendosni kodin tuaj në mënyrë korrekte.
#!/usr/bin/python3 # vendosni përkthyesin
import pgzrun # import modul pgzero WIDTH = 700 # gjerësia e dritares HEIGHT = 800 # lartësia e dritares def draw (): # pygame zero funksioni i vizatimit të ekranit. mbush ((128, 128, 128)) # mbush ekranin me RGB screen.draw.text me ngjyra ("Përshëndetje Botë!", (270, 320), # barazim "Përshëndetje Botë!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()
Para së gjithash ju duhet të ruani skedarin tuaj të programit dhe t'i jepni një emër.
Pastaj hapni një dritare të Terminalit, shkoni te vendndodhja e skedarit tuaj dhe shkruani:
./.py
Hapi 4: Vizatimi i aktorit tuaj
Tani që kemi vendosur skenën tonë, ne mund të krijojmë Aktorët tanë, ata janë objekte dinamike në Pygame Zero.
Ne mund të ngarkojmë një Aktor duke shtypur në krye të programit:
makinë = Aktor ("makinë garash")
Në Pygame Zero imazhet tona duhet të ruhen në një drejtori të quajtur imazhe, pranë skedarit tonë të programit. Pra, Aktori ynë do të kërkonte një skedar imazhi në dosjen e imazheve të quajtur racecar.png. Mund të jetë një skedar GIF ose një JPG, por rekomandohet që imazhet tuaja të jenë skedarë-p.webp
Mund të vendosni pozicionin e tij në ekran duke shtypur:
makinë.pos = 350, 560
Pas kësaj në funksionin tonë draw () ne mund të shtypim
car.draw () # tërheq makinën tonë të garës në pozicionin e saj të përcaktuar
Programi i plotë do të jetë kështu:
#!/usr/bin/python3
import pgzrun WIDTH = 700 # gjerësia e dritares Lartësia = 800 # lartësia e makinës së dritares = Aktori ("vrapues") car.pos = 350, 560 def barazim (): # pygame zero tërheq funksionin e ekranit. mbush ((128, 128, 128)) # mbush ekranin me makinë.draw () pgzrun.go ()
Provoni programin tuaj për t'u siguruar që kjo po funksionon.
Hapi 5: Kontrolloni Aktorin
Pasi të kemi vizatuar makinën tonë në ekran, faza tjetër është të mundësojmë lojtarin ta lëvizë atë.
Ne mund ta bëjmë këtë me shtypjet e tastit. Ne mund të lexojmë gjendjen e këtyre çelësave brenda një funksioni tjetër të paracaktuar të quajtur update ().
Funksioni i azhurnimit ()
Ky funksion kontrollohet vazhdimisht gjatë lojës.
Ne duhet të shkruajmë një kod për të zbuluar shtypjet e tastit të shigjetave dhe gjithashtu për të bërë diçka në lidhje me të.
Pra, ne do ta shtojmë këtë funksion në programin tonë
def update ():
nëse tastiera.majtas: car.x -= 2 nëse tastiera.djathtas: car.x += 2 nëse tastiera.up: car.y -= 2 nëse tastiera. poshtë: car.y += 2
Këto rreshta të kodit do ta lëvizin Aktorin e makinës majtas, djathtas, përpara dhe prapa.
Hapi 6: Ndërtimi i pistës
Tani që kemi një makinë që mund ta drejtojmë, na duhet një pistë që ajo të ecë.
Ne do të ndërtojmë rrugën tonë nga Aktorët, një rresht në një kohë. Do të na duhet të bëjmë disa lista për të mbajtur gjurmët e Aktorëve që krijojmë.
Ne gjithashtu do të duhet të krijojmë disa ndryshore të tjera për rrugën.
Pastaj le të bëjmë një funksion të ri të quajtur makeTrack (), Funksioni do të shtojë një këngë Aktori në të majtë dhe një në të djathtë, të dy duke përdorur imazhin bare-p.webp
trackLeft = # listë për të ruajtur shiritat e majtë
trackRight = # listë për të ruajtur barrierat e djathta trackCount = 0 # numëroni numrin e barrierave trackPosition = 350 trackWidth = 150 # gjerësia midis shiritave të majtë dhe të djathtë def makeTrack (): # funksioni për të bërë një barrie në pikën globale të majtë dhe të djathtë, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Aktor ("i zhveshur", pos = (trackPosition-trackWidth, 0))) trackRight.append (Aktor ("i zhveshur", pos = (trackPosition + trackWidth, 0))) trackCount += 1
Gjëja tjetër që duhet të bëjmë është të lëvizim pjesët e pistës poshtë ekranit drejt makinës.
Le të shkruajmë një funksion të ri të quajtur updateTrack (), Ky funksion azhurnohet ku do të shfaqen blloqet e pjesëve. Pjesët e pjesëve krijohen nga numra të rastësishëm kështu që secila lojë është e ndryshme.
trackDriction = E pavërtetë
SPEED = 4 # vendos shpejtësinë e lojës nga importimi i rastësishëm randint # importoni klasën randint nga moduli i rastësishëm def updateTrack (): track global, numërimi i track, Pozicioni, trackDirection, trackWidth, SPEED b = 0 ndërsa b
Ju lutemi referojuni skedarit zip më poshtë të quajtur "RaceGameDemo".
Nëse drejtojmë kodin tonë për momentin, duhet të shohim një udhë që zvarritet drejt makinës. Problemi i vetëm është se ne mund ta lëvizim makinën mbi barrierat e pistës dhe duam ta mbajmë makinën brenda tyre me një zbulim përplasjeje.
Hapi 7: Përplasja e makinës
Ne duhet të sigurohemi që makina jonë të mos prekë aktorët e pistës.
ne gjithashtu mund të testojmë për përplasje duke përdorur metodën colliderect () në funksionin tonë updateTrack ().
Në këtë lojë do të kemi tre gjendje të ndryshme të lojës të ruajtura në lojën tonë të ndryshueshmeStatus:
- gameStatus == 0 # loja po funksionon
- gameStatus == 1 # aksident me makinë
- gameStatus == 2 # lojë përfundoi
Ne do të duhet të ndryshojmë funksionin tonë të tërheqjes () dhe funksionin tonë të azhurnimit () për t'iu përgjigjur ndryshores gameStatus.
Prekjet përfundimtare
E tëra çfarë duhet të bëjmë tani është të shfaqim diçka nëse gameStatus është vendosur në 1 ose 2, për shembull ne duhet të shfaqim një ngjyrë të kuqe
flamur, nëse makina është përplasur. Ne mund ta bëjmë atë me kodin më poshtë:
ekran.blit ("redflag", (230, 230))
Për të parë nëse makina ka arritur në fund, duhet të numërojmë sa seksione pista janë krijuar dhe pastaj ndoshta kur të arrijmë në 200, vendosim gameStatus në 2. Pastaj shfaqni flamurin me kuadrat:
ekran.blit ("flamuri i mbarimit", (230, 230))
Ne gjithashtu do të shfaqim disa tekste në ekran si rezultati aktual i lojës.
Hidhini një sy listës së plotë të kodeve për të parë se si i përshtatet e gjithë kjo së bashku.
Hapi 8: Drejtoni lojën në Raspberry Pi
Në Raspberry Pi pgzero është instaluar si parazgjedhje që nga lëshimi i Raspbian Jessie në Shtator 2015.
Thjesht azhurnoni Raspberry Pi tuaj duke përdorur komandën:
përditësim sudo apt-get
Shkoni në vendndodhjen e skedarit tuaj dhe shkruani Terminalin.
pgzrun.py
Hapi 9: A keni fituar?
Ju mund ta bëni lojën më të lehtë ose më të vështirë duke ndryshuar variablin trackWidth për ta bërë rrugën një gjerësi të ndryshme. Ju mund të ndryshoni vlerën e SPEED për ta bërë rrugën të lëvizë më shpejt ose më ngadalë.
Hapi 10: Përfundimi
Pygame Zero është një zgjedhje e shkëlqyeshme për këdo që dëshiron të fillojë të shkruajë lojëra kompjuterike.
Nëse keni ndonjë pyetje sigurisht që mund të lini një koment. Për të parë më shumë rreth punimeve të mia, ju lutemi vizitoni kanalin tim:
myYouTube
myTwitter
myLinkedin
Faleminderit që lexuat këtë udhëzues ^^ dhe keni një ditë të bukur. Shihemi. Ahmed Nouira.