Sisukord:

Looge oma esimene võidusõidumäng: 10 sammu
Looge oma esimene võidusõidumäng: 10 sammu

Video: Looge oma esimene võidusõidumäng: 10 sammu

Video: Looge oma esimene võidusõidumäng: 10 sammu
Video: Вкусная КУРИНАЯ ПЕЧЕНЬ. Жареная печень на сковороде с луком. Торт печёночный 2024, November
Anonim
Image
Image
Pilt
Pilt

Kui olete Pythoni kodeerinud ja soovinud kirjutada mängu, mis teil võib olla Pygame Zero kaudu.

Selles õpetuses kirjutame lihtsa võidusõidu mängu.

1. samm: lai ülevaade

Pygame moodul lisab palju funktsioone, mis aitavad teil Pythonis mänge kirjutada.

Pygame Zero astub sammu kaugemale, et saaksite vahele jätta kõigi nende mängusilmuste tegemise ja programmi struktuuri seadistamise tülika protsessi.

Pygame Zero on suurepärane valik kõigile, kes soovivad alustada arvutimängude kirjutamist Raspberry Pi või mis tahes Linuxi masinaga.

Te vajate:

  • Masin, mis töötab Linuxi operatsioonisüsteemiga
  • Toimetaja python -programmi kirjutamiseks
  • Klaviatuur
  • Natuke kujutlusvõimet

Failid:

github.com/AhmNouira/-Racing-Game

2. etapp: eeltingimused

Esiteks kasutan oma sülearvutit koos Ubuntu 18.04 OS -iga. Seejärel käivitame mängu Raspberry Pi abil sammus 8.

Enne selle õpetuse jätkamist veenduge, et olete sisse logitud sudo -õigustega kasutajana.

Piphon 3 installimine

Alustage pakettide loendi värskendamisega, kasutades järgmist käsku:

sudo apt värskendus

Pythoni 3 installimiseks kasutage järgmist käsku:

sudo apt install python3-pip

kontrollige installimist, kontrollides pip versiooni:

pip3 -versioon

Pygame Zero installimine

pip3 install pgzero --kasutaja

See installib ka Pygame'i. Eelkompileeritud Pygame'i paketid

Nii et esimene samm teie teekonnal on Python 3 IDLE või teie lemmikpythoni redaktori avamine.

3. samm: "Tere maailm" Pygame Zero'is

Vaikimisi avaneb Pygame Zero aken suurusega 800 pikslit ja 600 pikslit kõrge. Saate kohandada

akna suuruse järgi saate määrata kaks muutujat, kui lisate WIDTH = 700 HIGH = 800.

Pygame zero pakub eelmääratud funktsioone mängusilmuse tavapäraseks täitmiseks:

Funktsioon draw ()

Me võime selle funktsiooni oma programmi kirjutada samamoodi nagu tavaliselt Pythonis funktsiooni määratleksime.

Pygame Zero järgib samu vormindamisreegleid nagu Python, seega peate hoolitsema oma koodi õige taande eest.

#!/usr/bin/python3 # määrake tõlk

import pgzrun # impordi pgzero moodul WIDTH = 700 # akna laius HEIGHT = 800 # akna kõrgus def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # täida ekraan RGB -ga värviline screen.draw.text ("Tere maailm!", (270, 320), # joonista "Tere maailm!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()

Kõigepealt peate oma programmifaili salvestama ja sellele nime andma.

Seejärel avage terminali aken, minge oma faili asukohta ja tippige:

./.py

4. samm: näitleja joonistamine

Näitleja joonistamine
Näitleja joonistamine

Nüüd, kui meil on lavakomplekt, saame luua oma näitlejaid, nad on Pygame Zero dünaamilised objektid.

Näitleja saab laadida programmi tippu tippides:

auto = näitleja ("võidusõiduauto")

Pygame Zero's tuleb meie pildid salvestada kataloogi nimega images, meie programmifaili kõrvale. Nii et meie näitleja otsiks pildifaili piltide kaustast racecar.png. See võib olla GIF- või JPG-fail, kuid on soovitatav, et teie pildid oleksid PNG-failid, kuna see failitüüp pakub kvaliteetseid pilte koos lüümikutega.

Saate määrata selle asukoha ekraanil, tippides:

auto.pos = 350, 560

Pärast seda võime oma draw () funktsioonis tippida

car.draw () # joonistage meie võidusõiduauto kindlaksmääratud positsioonile

Kogu programm saab olema selline:

#!/usr/bin/python3

import pgzrun WIDTH = 700 # akna laius HEIGHT = 800 # akna kõrgus auto = Näitleja ("võidusõiduauto") auto.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # täitke ekraan autoga.draw () pgzrun.go ()

Testige oma programmi ja veenduge, et see töötab.

Samm: kontrollige näitlejat

Kontrolli näitlejat
Kontrolli näitlejat

Kui oleme oma auto joonistuse ekraanile pannud, on järgmine etapp võimaldada mängijal seda liigutada.

Seda saame teha klahvivajutustega. Nende võtmete olekut saame lugeda teises eelmääratud funktsioonis update ().

Värskenduse () funktsioon

Seda funktsiooni kontrollitakse pidevalt mängu ajal.

Peame kirjutama koodi, et tuvastada nooleklahvide klahvivajutusi ja ka midagi ette võtta.

Seega lisame selle funktsiooni oma programmi

def uuendus ():

kui klaviatuur.vasak: auto.x -= 2 kui klaviatuur.parem: auto.x += 2 kui klaviatuur.üles: auto.y -= 2 kui klaviatuur.maht: auto.y += 2

Need koodirid liigutavad auto näitlejat vasakule, paremale, edasi ja tagasi.

6. samm: raja ehitamine

Raja ehitamine
Raja ehitamine

Nüüd, kui meil on auto, mida saame juhtida, vajame selle läbimiseks rada.

Ehitame oma raja näitlejatest, üks rida korraga. Peame koostama mõned nimekirjad, et jälgida meie loodud näitlejaid.

Samuti peame raja jaoks seadistama veel mõned muutujad.

Seejärel teeme uue funktsiooni nimega makeTrack (). Funktsioon lisab vasakule ja teisele paremale ühe pala näitleja, mõlemad kasutavad meie piltide kaustas olevat pilti bare.png.

trackLeft = # loend vasakpoolsete tõkete salvestamiseks

trackRight = # loend parempoolsete tõkete salvestamiseks trackCount = 0 # loendab tõkete arvu trackPosition = 350 trackWidth = 150 # laius vasaku ja parema tõkke vahel, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount += 1

Järgmine asi, mida peame tegema, on rööbasteede liigutamine ekraanilt allapoole auto poole.

Kirjutame uue funktsiooni nimega updateTrack (), seda funktsiooni värskendatakse, kus ilmuvad palaplokid. Rajaosad luuakse juhuslike numbrite abil, nii et iga mäng on erinev.

trackDriction = Vale

SPEED = 4 # määrab mängu kiiruse juhusliku impordi kaudu 32: if trackDirection == False: trackPosition += 16 if trackDirection == True: trackPosition - = 16 if randint (0, 4) == 1: trackDirection = not trackDirection if trackPosition> 700 - trackWidth: trackDirection = True if trackPosition < trackWidth: trackDirection = False makeTrack () # loo ekraani ülaosas uus rada

Palun vaadake allpool olevat ZIP -faili nimega "RaceGameDemo".

Kui me praegu oma koodi käitame, peaksime nägema rada, mis auto poole alla hiilib. Ainus probleem on see, et saame auto üle rajapiirete liigutada ja tahame autot nende sees hoida koos mõne kokkupõrke tuvastamisega.

7. samm: autoõnnetus

Autoavarii
Autoavarii
Autoavarii
Autoavarii
Autoavarii
Autoavarii

Peame tagama, et meie auto ei puudutaks näitlejate rada.

samuti võime testida kokkupõrkeid, kasutades funktsiooni updateTrack () meetodit colliderect ().

Selles mängus on meie muutuvas mängus olekusse salvestatud mängu kolm erinevat olekut:

  • gameStatus == 0 # mäng töötab
  • gameStatus == 1 # autoõnnetus
  • gameStatus == 2 # mäng lõppes

Peame muutma oma draw () funktsiooni ja update () funktsiooni, et vastata gameStatus muutujale.

Viimistlus

Kõik, mida peame tegema, on nüüd midagi kuvada, kui gameStatus on seatud väärtusele 1 või 2, näiteks peaksime näitama punast

lipp, kui auto kukkus alla. Seda saame teha alloleva koodiga:

screen.blit ("punane lipp", (230, 230))

Et näha, kas auto on finišisse jõudnud, peaksime loendama, kui palju rajalõike on loodud, ja siis, kui jõuame 200ni, seadistage gameStatus väärtuseks 2. Seejärel kuvage ruuduline lipp:

screen.blit ("finišilipp", (230, 230))

Samuti kuvame ekraanil teksti, nagu mängu praegune tulemus.

Vaadake täielikku koodiloendit, et näha, kuidas see kõik kokku sobib.

Samm: käivitage mäng Raspberry Pi -l

Käivitage mäng Raspberry Pi -l
Käivitage mäng Raspberry Pi -l
Käivitage mäng Raspberry Pi -l
Käivitage mäng Raspberry Pi -l

Raspberry Pi -s on pgzero vaikimisi installitud alates Raspbian Jessie ilmumisest 2015. aasta septembris.

Lihtsalt värskendage oma Raspberry Pi käsku kasutades:

sudo apt-get update

Minge oma faili asukohta ja tippige terminali.

pgzrun.py

Samm: kas võitsite?

Kas sa võitsid?
Kas sa võitsid?

Saate mängu lihtsamaks või raskemaks muuta, muutes trackWidth muutujat, et muuta rada erineva laiusega. SPEED väärtust saate muuta, et rada liiguks kiiremini või aeglasemalt.

10. samm: järeldus

Pygame Zero on suurepärane valik kõigile, kes soovivad hakata arvutimänge kirjutama.

Kui teil on küsimusi, võite muidugi kommentaari jätta. Minu tööde kohta lisateabe saamiseks külastage minu kanalit:

myYouTube

myTwitter

myLinkedin

Täname, et lugesite seda juhendit ^^ ja kena päeva. Nägemiseni. Ahmed Nouira.

Soovitan: