Satura rādītājs:
- 1. darbība. Plašs pārskats
- 2. darbība. Priekšnosacījumi
- 3. darbība: “Sveika pasaule” Pygame Zero
- 4. solis: aktiera zīmēšana
- 5. darbība: kontrolējiet aktieri
- 6. solis: ceļa izveidošana
- 7. solis: autoavārija
- 8. darbība: palaidiet spēli Raspberry Pi
- 9. solis: Vai jūs uzvarējāt?
- 10. solis: Secinājums
Video: Izveidojiet savu pirmo sacīkšu spēli: 10 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Ja esat veicis Python kodēšanu un vēlējāties uzrakstīt spēli, kas jums varētu būt pieejama visā Pygame Zero.
Šajā apmācībā mēs uzrakstīsim vienkāršu sacīkšu spēli.
1. darbība. Plašs pārskats
Pygame modulis pievieno daudzas funkcijas, kas palīdz rakstīt spēles Python.
Pygame Zero iet vēl vienu soli tālāk, lai ļautu jums izlaist apgrūtinošo visu šo spēļu cilpu veidošanas un programmas struktūras iestatīšanas procesu.
Pygame Zero ir lieliska izvēle ikvienam, kurš vēlas sākt rakstīt datorspēles Raspberry Pi vai jebkurā Linux datorā.
Jums būs nepieciešams:
- Mašīna, kurā darbojas Linux OS
- Redaktors python programmas rakstīšanai
- Tastatūra
- Kaut kāda iztēle
Faili:
github.com/AhmNouira/-Racing-Game
2. darbība. Priekšnosacījumi
Vispirms es izmantošu savu klēpjdatoru ar Ubuntu 18.04 OS. Pēc tam mēs veiksim spēli Raspberry Pi, veicot 8. darbību.
Pirms turpināt šo apmācību, pārliecinieties, vai esat pieteicies kā lietotājs ar sudo privilēģijām.
Piphon instalēšana Python 3
Sāciet ar pakotņu saraksta atjaunināšanu, izmantojot šādu komandu:
sudo apt atjauninājums
Izmantojiet šo komandu, lai instalētu pip Python 3:
sudo apt instalēt python3-pip
pārbaudiet instalāciju, pārbaudot pip versiju:
pip3 -versija
Pygame Zero instalēšana
pip3 instalēt pgzero -lietotāju
Tas arī instalēs Pygame. Iepriekš apkopotas Pygame paketes
Tātad pirmais solis ceļā būs atvērt Python 3 IDLE vai iecienīto python redaktoru.
3. darbība: “Sveika pasaule” Pygame Zero
Pēc noklusējuma logs Pygame Zero tiek atvērts 800 pikseļu platumā un 600 pikseļu augstumā. Jūs varat pielāgot
pēc loga lieluma, varat iestatīt divus iepriekš noteiktus mainīgos, ja iekļaujat WIDTH = 700 HIGH = 800.
Pygame zero nodrošina iepriekš noteiktas funkcijas, lai parasti apstrādātu spēles cilpu:
Funkcija draw ()
Mēs varam ierakstīt šo funkciju savā programmā tāpat kā mēs parasti definētu funkciju Python.
Pygame Zero ievēro tādus pašus formatēšanas noteikumus kā Python, tāpēc jums būs jārūpējas par pareizu koda atkāpi.
#!/usr/bin/python3 # iestatiet tulku
importēt pgzrun # importēt pgzero moduli WIDTH = 700 # loga platums HEIGHT = 800 # loga augstums def draw (): # pygame nulles zīmēšanas funkcijas screen.fill ((128, 128, 128)) # aizpildiet ekrānu ar RGB krāsu ekrāns.draw.text ("Sveika pasaule!", (270, 320), # izdarīt "Sveika pasaule!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()
Vispirms jums jāsaglabā programmas fails un jāpiešķir tam nosaukums.
Pēc tam atveriet termināļa logu, dodieties uz faila atrašanās vietu un ierakstiet:
./.py
4. solis: aktiera zīmēšana
Tagad, kad mums ir skatuves komplekts, mēs varam izveidot savus aktierus, tie ir dinamiski objekti Pygame Zero.
Mēs varam ielādēt aktieri, ierakstot programmas augšdaļā:
automašīna = aktieris ("sacīkšu auto")
Pygame Zero mūsu attēli ir jāglabā direktorijā, ko sauc par attēliem, blakus mūsu programmas failam. Tātad mūsu aktieris meklētu attēlu failu attēlu mapē ar nosaukumu racecar.png. Tas var būt GIF vai-j.webp
Varat iestatīt tā atrašanās vietu ekrānā, ierakstot:
automašīna.pos = 350, 560
Pēc tam mūsu draw () funkcijā mēs varam ierakstīt
car.draw () # uzzīmējiet mūsu sacīkšu automašīnu noteiktā vietā
Pilna programma būs šāda:
#!/usr/bin/python3
importēt pgzrun WIDTH = 700 # loga platums HEIGHT = 800 # loga augstums = aktieris ("racecar") car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # aizpildiet ekrānu ar car.draw () pgzrun.go ()
Pārbaudiet savu programmu, lai pārliecinātos, ka tā darbojas.
5. darbība: kontrolējiet aktieri
Kad ekrānā būs redzams mūsu automašīnas zīmējums, nākamais posms ir ļaut spēlētājam to pārvietot.
Mēs to varam izdarīt, nospiežot taustiņus. Mēs varam izlasīt šo taustiņu stāvokli citā iepriekš definētā funkcijā, ko sauc par atjauninājumu ().
Atjaunināšanas () funkcija
Šī funkcija tiek pastāvīgi pārbaudīta spēles laikā.
Mums ir jāraksta kods, lai noteiktu bulttaustiņu nospiešanu un kaut ko darītu.
Tāpēc mēs pievienosim šo funkciju mūsu programmai
def atjauninājums ():
ja tastatūra.pa kreisi: automašīna.x -= 2, ja tastatūra.pa labi: automašīna.x += 2, ja tastatūra.up: automašīna.y -= 2 ja tastatūra.lejup: automašīna.y += 2
Šīs koda rindas pārvietos automašīnas aktieri pa kreisi, pa labi, uz priekšu un atpakaļ.
6. solis: ceļa izveidošana
Tagad, kad mums ir automašīna, kuru varam vadīt, mums ir nepieciešama trase, lai tā varētu braukt.
Mēs veidosim savu trasi no aktieriem, pa vienai rindai. Mums būs jāizveido daži saraksti, lai izsekotu mūsu izveidotajiem aktieriem.
Mums būs arī jāiestata vēl daži trases mainīgie.
Tad izveidosim jaunu funkciju ar nosaukumu makeTrack (). Funkcija pievienos vienu dziesmu Aktieris kreisajā pusē un vienu labajā pusē, abi izmantojot attēlu bare-p.webp
trackLeft = # saraksts kreiso barjeru glabāšanai
trackRight = # saraksts labo bariju saglabāšanai trackCount = 0 # saskaita bariju skaitu trackPosition = 350 trackWidth = 150 # platums starp kreiso un labo barjeru def makeTrack (): # funkcija, lai izveidotu vienu joslu kreisajā un labajā globālajā trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (aktieris ("tukšs", pos = (trackPosition-trackWidth, 0))) trackRight.append (aktieris ("tukšs", pos = (trackPosition + trackWidth, 0))) trackCount += 1
Nākamā lieta, kas mums jādara, ir sliežu ceļa posmu pārvietošana pa ekrānu automašīnas virzienā.
Uzrakstīsim jaunu funkciju ar nosaukumu updateTrack (). Šī funkcija tiek atjaunināta, kur parādīsies celiņu bloki. Ierakstu gabali tiek veidoti pēc nejaušiem skaitļiem, tāpēc katra atskaņošana ir atšķirīga.
trackDriction = Nepareizi
SPEED = 4 # nosaka spēles ātrumu no nejaušas importēšanas randint # importē randint klasi no izlases moduļa def updateTrack (): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0, kamēr b
Lūdzu, skatiet zemāk esošo zip failu ar nosaukumu "RaceGameDemo".
Ja mēs šobrīd izpildām savu kodu, mums vajadzētu redzēt sliežu ceļu, kas virzās uz leju automašīnas virzienā. Vienīgā problēma ir tā, ka mēs varam pārvietot automašīnu pāri sliežu ceļa barjerām, un mēs vēlamies turēt automašīnu iekšā ar nelielu sadursmes noteikšanu.
7. solis: autoavārija
Mums jāpārliecinās, ka mūsu automašīna nepieskaras aktieriem.
mēs varam arī pārbaudīt sadursmes, izmantojot funkciju colliderect () mūsu updateTrack () funkcijā.
Šajā spēlē mums būs trīs dažādi spēles stāvokļi, kas saglabāti mūsu mainīgajā spēlēStatus:
- gameStatus == 0 # spēle darbojas
- gameStatus == 1 # autoavārija
- gameStatus == 2 # spēle pabeigta
Mums būs jāmaina mūsu draw () funkcija un mūsu update () funkcija, lai reaģētu uz mainīgo gameStatus.
Apdare
Viss, kas mums jādara, ir parādīt kaut ko, ja gameStatus ir iestatīts uz 1 vai 2, piemēram, mums vajadzētu parādīt sarkanu
karogs, ja automašīna avarēja. Mēs to varam izdarīt, izmantojot tālāk norādīto kodu.
screen.blit ("sarkanais karogs", (230, 230))
Lai redzētu, vai automašīna ir sasniegusi finišu, mums vajadzētu saskaitīt, cik sliežu posmu ir izveidots, un tad, iespējams, sasniedzot 200, iestatiet gameStatus uz 2. Tad parādiet rūtaino karogu:
screen.blit ("finishflag", (230, 230))
Mēs arī ekrānā parādīsim kādu tekstu, piemēram, spēles pašreizējo rezultātu.
Apskatiet visu kodu sarakstu, lai redzētu, kā tas viss atbilst.
8. darbība: palaidiet spēli Raspberry Pi
Vietnē Raspberry Pi pgzero ir instalēta pēc noklusējuma kopš Raspbian Jessie izlaišanas 2015. gada septembrī.
Vienkārši atjauniniet Raspberry Pi, izmantojot komandu:
sudo apt-get update
Dodieties uz faila atrašanās vietu un ierakstiet terminālī.
pgzrun.py
9. solis: Vai jūs uzvarējāt?
Jūs varat padarīt spēli vieglāku vai grūtāku, mainot mainīgo trackWidth, lai celiņš kļūtu atšķirīgs. Jūs varat mainīt SPEED vērtību, lai celiņš kustētos ātrāk vai lēnāk.
10. solis: Secinājums
Pygame Zero ir lieliska izvēle ikvienam, kurš vēlas sākt rakstīt datorspēles.
Ja jums ir kādi jautājumi, protams, varat atstāt komentāru. Lai redzētu vairāk par maniem darbiem, lūdzu, apmeklējiet manu kanālu:
myYouTube
myTwitter
myLinkedin
Paldies, ka izlasījāt šo pamācību ^^ un jauku dienu. Uz redzi. Ahmeds Nuira.
Ieteicams:
Izveidojiet savu 1D tenisa spēli: 5 soļi (ar attēliem)
Izveidojiet savu 1D tenisa spēli: šim projektam es jums parādīšu, kā es apvienoju MDF plāksni ar skaņas signāla pogām, gaismas diodēm un Arduino Nano, lai izveidotu 1D tenisa spēli, kuru ir patiešām patīkami spēlēt. Pa ceļam es jums parādīšu, kā izveidot elektronikas shēmu un cik atšķirīga ir
Kā uzrakstīt savu pirmo Java programmu: 5 soļi
Kā uzrakstīt savu pirmo Java programmu: šī apmācība parāda, kā soli pa solim uzrakstīt savu pirmo Java programmu
Izvietojiet savu pirmo uzdevumu saraksta lietojumprogrammu: 8 soļi
Izvietojiet savu pirmo uzdevumu saraksta lietojumprogrammu: ja jūs esat pilnīgi jauns kodētājs vai jums ir kāda fona kodēšana, jums varētu rasties jautājums, kur sākt mācīties. Jums jāiemācās, kā, ko, kur kodēt un pēc tam, kad kods ir gatavs, kā to izvietot, lai visi to redzētu. Nu, labās ziņas es
Izveidojiet savu pirmo IOT, izmantojot Arduino bez papildu moduļiem: 5 soļi (ar attēliem)
Izveidojiet savu pirmo IOT, izmantojot Arduino bez papildu moduļiem: Pasaule katru dienu kļūst gudrāka, un lielākais iemesls tam ir viedo tehnoloģiju attīstība. Kā tehnoloģiju entuziasts jūs noteikti esat dzirdējis par terminu IOT, kas nozīmē lietu internetu. Lietu internets nozīmē kontrolēt un barot
Uzrakstiet savu pirmo C# kodu (operētājsistēmai Windows) !: 7 soļi
Uzrakstiet savu pirmo C# kodu (operētājsistēmai Windows) !: Šajā pamācībā es jums žēlīgi iemācīšu, kā izveidot savu kodu C# valodā! Viss, kas jums nepieciešams, ir dators/klēpjdators un nedaudz pacietības. Izņemot lejupielādes laiku, tas aizvedīs tikai aptuveni