Satura rādītājs:

Izveidojiet savu pirmo sacīkšu spēli: 10 soļi
Izveidojiet savu pirmo sacīkšu spēli: 10 soļi

Video: Izveidojiet savu pirmo sacīkšu spēli: 10 soļi

Video: Izveidojiet savu pirmo sacīkšu spēli: 10 soļi
Video: Joka pēc alfabēts / Funny Alphabet 2024, Jūlijs
Anonim
Image
Image
Attēls
Attēls

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

Zīmēt savu aktieri
Zīmēt savu aktieri

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

Kontrolējiet aktieri
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

Ceļa veidošana
Ceļa veidoš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 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 () # izveidojiet jaunu celiņu ekrāna augšdaļā

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

Autoavārija
Autoavārija
Autoavārija
Autoavārija
Autoavārija
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

Palaidiet spēli Raspberry Pi
Palaidiet spēli Raspberry Pi
Palaidiet spēli Raspberry Pi
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?

Vai tu uzvarēji?
Vai tu uzvarēji?

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: