Innholdsfortegnelse:

Lag ditt første racingspill: 10 trinn
Lag ditt første racingspill: 10 trinn

Video: Lag ditt første racingspill: 10 trinn

Video: Lag ditt første racingspill: 10 trinn
Video: Sega Genesis / Mega Drive - Review - Game Sack 2024, Juli
Anonim
Image
Image
Bilde
Bilde

Hvis du har gjort noen Python -koding og ønsket å skrive et spill du kan ha på tvers av Pygame Zero.

I denne opplæringen skriver vi et enkelt racingspill.

Trinn 1: Den brede oversikten

Pygame -modulen legger til mange funksjoner som hjelper deg med å skrive spill i Python.

Pygame Zero går et skritt videre for å la deg hoppe over den vanskelige prosessen med å lage alle disse spillløkkene og sette opp programstrukturen din.

Pygame Zero er et godt valg for alle som ønsker å begynne å skrive dataspill på Raspberry Pi eller hvilken som helst Linux -maskin.

Du vil trenge:

  • Maskin som kjører Linux OS
  • Editor for å skrive python -program
  • Tastatur
  • Litt fantasi

Filer:

github.com/AhmNouira/-Racing-Game

Trinn 2: Forutsetninger

Først skal jeg bruke min bærbare med Ubuntu 18.04 OS. Deretter kjører vi spillet på Raspberry Pi i trinn 8.

Før du fortsetter med denne opplæringen, må du kontrollere at du er logget på som en bruker med sudo -rettigheter.

Installere pip for Python 3

Start med å oppdatere pakkelisten ved å bruke følgende kommando:

sudo apt oppdatering

Bruk følgende kommando for å installere pip for Python 3:

sudo apt installer python3-pip

bekreft installasjonen ved å sjekke pip -versjonen:

pip3 -versjon

Installere Pygame Zero

pip3 installer pgzero --bruker

Dette vil også installere Pygame. Forhåndskompilerte Pygame-pakker

Så det første trinnet i reisen din vil være å åpne Python 3 IDLE eller din favoritt python -editor.

Trinn 3: "Hei verden" i Pygame Zero

Som standard åpnes vinduet Pygame Zero i størrelsen 800 piksler bredt og 600 piksler høyt. Du kan tilpasse

størrelsen på vinduet ditt, er det to forhåndsbestemte variabler du kan angi, hvis du inkluderer WIDTH = 700 HIGH = 800.

Pygame zero gir forhåndsdefinerte funksjoner for å håndtere spillløkken som normalt utfører:

Draw () Funksjonen

Vi kan skrive denne funksjonen inn i programmet vårt på samme måte som vi normalt ville definert en funksjon i Python.

Pygame Zero følger de samme formateringsreglene som Python, så du må passe på å innrykke koden riktig.

#!/usr/bin/python3 # angi tolken

import pgzrun # import pgzero modul WIDTH = 700 # bredde på vinduet HEIGHT = 800 # høyde på vinduet def draw (): # pygame zero draw function screen. fyll ((128, 128, 128)) # fyll skjermen med RGB color screen.draw.text ("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()

Først av alt må du lagre programfilen og gi den et navn.

Åpne deretter et Terminal -vindu, gå til filplasseringen og skriv:

./.py

Trinn 4: Tegn skuespilleren din

Tegner skuespilleren din
Tegner skuespilleren din

Nå som vi har scenen satt, kan vi lage våre skuespillere, de er dynamiske objekter i Pygame Zero.

Vi kan laste inn en skuespiller ved å skrive inn toppen av programmet:

bil = skuespiller ("racer car")

I Pygame Zero må bildene våre lagres i en katalog som heter bilder, ved siden av programfilen vår. Så vår skuespiller ville lete etter en bildefil i bildemappen kalt racecar.png. Det kan være en GIF- eller en JPG-fil, men det anbefales at bildene dine er PNG-filer, da filtypen gir bilder av god kvalitet med transparenter.

Du kan angi posisjonen på skjermen ved å skrive:

bil.pos = 350, 560

Etter det i vår draw () -funksjon kan vi skrive

car.draw () # tegne racerbilen til den definerte posisjonen

Hele programmet vil være slik:

#!/usr/bin/python3

import pgzrun WIDTH = 700 # bredde på vinduet HEIGHT = 800 # høyde på vinduet bil = Actor ("racer car") car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # fyll skjermen med car.draw () pgzrun.go ()

Test programmet for å sikre at dette fungerer.

Trinn 5: Kontroller skuespilleren

Kontroller skuespilleren
Kontroller skuespilleren

Når vi har tegnet bilen på skjermen, er neste trinn å gjøre spilleren i stand til å flytte den.

Vi kan gjøre dette med tastetrykk. Vi kan lese tilstanden til disse tastene inne i en annen forhåndsdefinert funksjon som kalles oppdatering ().

Oppdateringen () -funksjonen

Denne funksjonen kontrolleres kontinuerlig mens spillet kjører.

Vi må skrive noen kode for å oppdage tastetrykk på piltastene og også gjøre noe med det.

Så vi legger til denne funksjonen i programmet vårt

def oppdatering ():

hvis tastatur. venstre: bil.x -= 2 hvis tastatur. høyre: bil.x += 2 hvis tastatur. opp: bil.y -= 2 hvis tastatur. ned: bil.y += 2

Disse kodelinjene vil flytte bilskuespilleren til venstre, høyre, fremover og bakover.

Trinn 6: Bygg sporet

Å bygge banen
Å bygge banen

Nå som vi har en bil som vi kan styre, trenger vi et spor for at den skal kjøre videre.

Vi skal bygge banen vår ut av Actors, en rad om gangen. Vi må lage noen lister for å holde oversikt over skuespillerne vi lager.

Vi må også sette opp noen flere variabler for sporet.

La oss deretter lage en ny funksjon kalt makeTrack (). Funksjonen vil legge til ett spor Actor til venstre og en til høyre, begge ved å bruke bildet bare-p.webp

trackLeft = # liste for å lagre venstre barrierer

trackRight = # liste for å lagre høyre barries trackCount = 0 # tell antall barries trackPosition = 350 trackWidth = 150 # bredde mellom venstre og høyre barrierer def makeTrack (): # funksjon for å lage en barrie på venstre og høyre globale trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount += 1

Det neste vi må gjøre er å flytte delene av sporet nedover skjermen mot bilen.

La oss skrive en ny funksjon som heter updateTrack (), Denne funksjonen oppdaterer hvor sporblokkene vil vises. Sporbitene lages av tilfeldige tall, så hvert spill er annerledes.

trackDriction = False

SPEED = 4 # angir spillets hastighet fra tilfeldig import randint # importer randint -klassen fra tilfeldig modul def updateTrack (): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 mens 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 () # lag et nytt spor øverst på skjermen

Vennligst referer til zip -filen under navnet "RaceGameDemo".

Hvis vi kjører koden vår for øyeblikket, bør vi se et spor som sniker seg ned mot bilen. Det eneste problemet er at vi kan flytte bilen over sporbarrierer, og vi vil beholde bilen inne i dem med noe kollisjonsdeteksjon.

Trinn 7: Bilkrasj

Bilulykke
Bilulykke
Bilulykke
Bilulykke
Bilulykke
Bilulykke

Vi må sørge for at bilen vår ikke berører banen Actors.

vi kan like godt teste for kollisjoner ved å bruke metoden colliderect () i vår updateTrack () -funksjon.

I dette spillet vil vi ha tre forskjellige tilstander til spillet lagret i vår variable gameStatus:

  • gameStatus == 0 # spillet kjører
  • gameStatus == 1 # bilulykke
  • gameStatus == 2 # spillet er ferdig

Vi må endre vår draw () -funksjon og vår update () -funksjon for å svare på gameStatus -variabelen.

Finpuss

Alt vi trenger å gjøre nå er å vise noe hvis gameStatus er satt til 1 eller 2, for eksempel bør vi vise en rød

flagg, hvis bilen krasjet. Vi kan gjøre det med koden nedenfor:

screen.blit ("redflag", (230, 230))

For å se om bilen har nådd mål, bør vi telle hvor mange baneseksjoner som er opprettet, og kanskje når vi kommer til 200, sett gameStatus til 2. Vis deretter det rutete flagget:

screen.blit ("finishflag", (230, 230))

Vi vil også vise litt tekst på skjermen som den nåværende poengsummen til spillet.

Ta en titt på hele kodelisten for å se hvordan alt dette henger sammen.

Trinn 8: Kjør spillet på Raspberry Pi

Kjør spillet på Raspberry Pi
Kjør spillet på Raspberry Pi
Kjør spillet på Raspberry Pi
Kjør spillet på Raspberry Pi

På Raspberry Pi har pgzero blitt installert som standard siden utgivelsen av Raspbian Jessie i september 2015.

Bare oppdater Raspberry Pi ved å bruke kommandoen:

sudo apt-get oppdatering

Gå til filplasseringen din og skriv inn Terminal.

pgzrun.py

Trinn 9: vant du?

Vant du?
Vant du?

Du kan gjøre spillet enklere eller vanskeligere ved å endre trackWidth -variabelen for å gjøre sporet til en annen bredde. Du kan endre verdien til SPEED for å få sporet til å bevege seg raskere eller langsommere.

Trinn 10: Konklusjon

Pygame Zero er et godt valg for alle som ønsker å begynne å skrive dataspill.

Hvis du har spørsmål kan du selvfølgelig legge igjen en kommentar. For å se mer om verkene mine, vennligst besøk kanalen min:

myYouTube

myTwitter

myLinkedin

Takk for at du leser denne instruktive ^^ og ha en fin dag. Vi ses. Ahmed Nouira.

Anbefalt: