Innehållsförteckning:

Skapa ditt första racingspel: 10 steg
Skapa ditt första racingspel: 10 steg

Video: Skapa ditt första racingspel: 10 steg

Video: Skapa ditt första racingspel: 10 steg
Video: När idrottsläraren delar in oss i 123 grupper 😂 2024, November
Anonim
Image
Image
Bild
Bild

Om du har gjort lite Python -kodning och ville skriva ett spel som du kanske har över Pygame Zero.

I denna handledning skriver vi ett enkelt racingspel.

Steg 1: Den breda översikten

Pygame -modulen lägger till många funktioner som hjälper dig att skriva spel i Python.

Pygame Zero går ett steg längre för att låta dig hoppa över den besvärliga processen att göra alla dessa spelslingor och konfigurera din programstruktur.

Pygame Zero är ett utmärkt val för alla som vill börja skriva datorspel på Raspberry Pi eller någon Linux -maskin.

Du kommer att behöva:

  • Maskin som kör Linux OS
  • Redaktör för att skriva python -program
  • Tangentbord
  • Lite fantasi

Filer:

github.com/AhmNouira/-Racing-Game

Steg 2: Förkunskaper

Först kommer jag att använda min bärbara dator med Ubuntu 18.04 OS. Sedan kör vi spelet på Raspberry Pi i steg 8.

Innan du fortsätter med denna handledning, se till att du är inloggad som en användare med sudo -privilegier.

Installera pip för Python 3

Börja med att uppdatera paketlistan med följande kommando:

sudo apt uppdatering

Använd följande kommando för att installera pip för Python 3:

sudo apt installera python3-pip

verifiera installationen genom att kontrollera pipversionen:

pip3 -version

Installera Pygame Zero

pip3 installera pgzero --användare

Detta kommer också att installera Pygame. Förkompilerade Pygame-paket

Så det första steget i din resa blir att öppna Python 3 IDLE eller din favorit pythonredigerare.

Steg 3: "Hej världen" i Pygame Zero

Som standard öppnas fönstret Pygame Zero med storleken 800 pixlar bred och 600 pixlar hög. Du kan anpassa

storleken på ditt fönster, finns det två förutbestämda variabler du kan ställa in, om du inkluderar WIDTH = 700 HIGH = 800.

Pygame zero ger fördefinierade funktioner för att hantera spelslingan som normalt utför:

Draw () funktionen

Vi kan skriva in den här funktionen i vårt program på samma sätt som vi normalt skulle definiera en funktion i Python.

Pygame Zero följer samma formateringsregler som Python, så du måste vara noga med att dra in koden korrekt.

#!/usr/bin/python3 # ställ in tolkaren

import pgzrun # import pgzero -modul WIDTH = 700 # fönsterbredd HEIGHT = 800 # höjd på fönstret def draw (): # pygame zero draw function screen. fyllning ((128, 128, 128)) # fyll skärmen med RGB color screen.draw.text ("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()

Först och främst måste du spara din programfil och ge den ett namn.

Öppna sedan ett terminalfönster, gå till din filplats och skriv:

./.py

Steg 4: Rita din skådespelare

Rita din skådespelare
Rita din skådespelare

Nu när vi har vår scenuppsättning kan vi skapa våra skådespelare, de är dynamiska objekt i Pygame Zero.

Vi kan ladda en skådespelare genom att skriva högst upp i programmet:

bil = skådespelare ("racecar")

I Pygame Zero måste våra bilder lagras i en katalog som heter bilder, bredvid vår programfil. Så vår skådespelare skulle leta efter en bildfil i bildmappen som heter racecar.png. Det kan vara en GIF- eller en JPG-fil, men det rekommenderas att dina bilder är PNG-filer eftersom den filtypen ger bilder av god kvalitet med OH-film.

Du kan ställa in dess position på skärmen genom att skriva:

bil.pos = 350, 560

Efter det i vår draw () -funktion kan vi skriva

car.draw () # rita vår racerbil på dess definierade position

Hela programmet kommer att se ut så här:

#!/usr/bin/python3

import pgzrun WIDTH = 700 # fönsterbredd HEIGHT = 800 # fönsterhöjd = Actor ("racecar") car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # fyll skärmen med car.draw () pgzrun.go ()

Testa ditt program för att se till att det fungerar.

Steg 5: Kontrollera skådespelaren

Kontrollera skådespelaren
Kontrollera skådespelaren

När vi väl har vår bil ritad på skärmen är nästa steg att låta spelaren flytta den.

Vi kan göra detta med knapptryckningar. Vi kan läsa tillståndet för dessa nycklar i en annan fördefinierad funktion som kallas update ().

Uppdateringen () -funktionen

Denna funktion kontrolleras kontinuerligt medan spelet körs.

Vi måste skriva lite kod för att upptäcka knapptryckningar på piltangenterna och också göra något åt det.

Så vi kommer att lägga till den här funktionen i vårt program

def update ():

om tangentbordet.vänster: bil.x -= 2 om tangentbordet.höger: bil.x += 2 om tangentbordet.upp: bil.y -= 2 om tangentbordet. ned: bil.y += 2

Dessa kodrader kommer att flytta bilen Actor vänster, höger, framåt och bakåt.

Steg 6: Bygga banan

Bygga banan
Bygga banan

Nu när vi har en bil som vi kan styra, behöver vi en bana för att den ska köra på.

Vi ska bygga vårt spår av Actors, en rad i taget. Vi måste göra några listor för att hålla reda på skådespelarna vi skapar.

Vi kommer också att behöva ställa in några fler variabler för spåret.

Låt oss sedan skapa en ny funktion som heter makeTrack (). Funktionen lägger till ett spår Actor till vänster och en till höger, båda med bilden bare-p.webp

trackLeft = # lista för att lagra vänster barriär

trackRight = # lista för att lagra höger barries trackCount = 0 # räkna antalet barries trackPosition = 350 trackWidth = 150 # bredd mellan vänster och höger barry def makeTrack (): # funktion för att göra en barrie vid vänster och höger global trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount += 1

Nästa sak som vi behöver göra är att flytta delarna av spåret ner på skärmen mot bilen.

Låt oss skriva en ny funktion som heter updateTrack (), den här funktionen uppdaterar var spårblocken kommer att visas. Spårbitarna skapas av slumpmässiga nummer så varje spelning är annorlunda.

trackDriction = False

SPEED = 4 # ställer in spelets hastighet från slumpmässig import randint # importerar randintklassen från random module def updateTrack (): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 medan 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 () # skapa ett nytt spår högst upp på skärmen

Se zip -filen nedan med namnet "RaceGameDemo".

Om vi kör vår kod för tillfället borde vi se ett spår som smyger ner mot bilen. Det enda problemet är att vi kan flytta bilen över spårbarriärerna och vi vill behålla bilen inuti dem med viss kollisionsdetektering.

Steg 7: Bilkrasch

Bilolycka
Bilolycka
Bilolycka
Bilolycka
Bilolycka
Bilolycka

Vi måste se till att vår bil inte vidrör spåret Actors.

vi kan lika gärna testa kollisioner med hjälp av metoden colliderect () i vår updateTrack () -funktion.

I det här spelet kommer vi att ha tre olika tillstånd till spelet lagrat i vårt variabla gameStatus:

  • gameStatus == 0 # spelet körs
  • gameStatus == 1 # bilolycka
  • gameStatus == 2 # spelet är klart

Vi måste ändra vår draw () -funktion och vår update () -funktion för att svara på gamestatus -variabeln.

Finputsning

Allt vi behöver göra nu är att visa något om gameStatus är inställt på 1 eller 2, till exempel bör vi visa en röd

flagga, om bilen kraschade. Vi kan göra det med koden nedan:

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

För att se om bilen har nått mål bör vi räkna hur många spåravsnitt som har skapats och sedan kanske när vi kommer till 200, ställ gameStatus till 2. Visa sedan den rutiga flaggan:

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

Vi kommer också att visa lite text på skärmen som spelets nuvarande poäng.

Ta en titt på hela kodlistan för att se hur allt hänger ihop.

Steg 8: Kör spelet på Raspberry Pi

Kör spelet på Raspberry Pi
Kör spelet på Raspberry Pi
Kör spelet på Raspberry Pi
Kör spelet på Raspberry Pi

På Raspberry Pi har pgzero installerats som standard sedan Raspbian Jessie släpptes i september 2015.

Uppdatera bara din Raspberry Pi med kommandot:

sudo apt-get uppdatering

Gå till din filplats och skriv in Terminal.

pgzrun.py

Steg 9: Vann du?

Vann du?
Vann du?

Du kan göra spelet enklare eller svårare genom att ändra trackWidth -variabeln för att göra spåret till en annan bredd. Du kan ändra värdet på SPEED för att få spåret att gå snabbare eller långsammare.

Steg 10: Slutsats

Pygame Zero är ett utmärkt val för alla som vill börja skriva datorspel.

Om du har några frågor kan du naturligtvis lämna en kommentar. För att se mer om mina verk, besök min kanal:

myYouTube

myTwitter

myLinkedin

Tack för att du läste detta instruerbara ^^ och ha en trevlig dag. Vi ses. Ahmed Nouira.

Rekommenderad: