Tartalomjegyzék:

Hozza létre első versenyjátékát: 10 lépés
Hozza létre első versenyjátékát: 10 lépés

Videó: Hozza létre első versenyjátékát: 10 lépés

Videó: Hozza létre első versenyjátékát: 10 lépés
Videó: [#CES2024] Íme a JÖVŐ: Ezek már nem is autók, hanem guruló számítógépek? 2024, November
Anonim
Image
Image
Kép
Kép

Ha végzett néhány Python -kódolást, és játékot akart írni, akkor lehet, hogy a Pygame Zero -n keresztül.

Ebben az oktatóanyagban egy egyszerű versenyjátékot fogunk írni.

1. lépés: A széles áttekintés

A Pygame modul számos olyan funkciót ad hozzá, amelyek segítenek játékokat írni Pythonban.

A Pygame Zero egy lépéssel tovább megy, hogy átugorja a játék hurkok létrehozásának és a programszerkezet beállításának nehézkes folyamatát.

A Pygame Zero nagyszerű választás mindazoknak, akik számítógépes játékok írását szeretnék elkezdeni a Raspberry Pi vagy bármely Linux gépen.

Szükséged lesz:

  • Linux operációs rendszert futtató gép
  • Szerkesztő python program írására
  • Billentyűzet
  • Némi képzelet

Fájlok:

github.com/AhmNouira/-Racing-Game

2. lépés: Előfeltételek

Először a laptopomat fogom használni az Ubuntu 18.04 operációs rendszerrel. Ezután a Raspberry Pi -n futtatjuk a játékot a 8. lépésben.

Az oktatóanyag folytatása előtt győződjön meg arról, hogy sudo jogosultságokkal rendelkező felhasználóként van bejelentkezve.

A pip telepítése a Python 3 -hoz

Kezdje a csomaglista frissítésével a következő paranccsal:

sudo apt frissítés

Használja a következő parancsot a pip telepítéséhez a Python 3 számára:

sudo apt install python3-pip

ellenőrizze a telepítést a pip verziójának ellenőrzésével:

pip3 --verzió

A Pygame Zero telepítése

pip3 install pgzero --user

Ez telepíti a Pygame -et is. Előre összeállított Pygame csomagok

Tehát az utazás első lépése a Python 3 IDLE vagy a kedvenc pythonszerkesztőjének megnyitása lesz.

3. lépés: "Hello World" a Pygame Zero -ban

Alapértelmezés szerint a Pygame Zero ablak 800 pixel széles és 600 pixel magas méretben nyílik meg. Testreszabhatja

Az ablak méretének megfelelően két előre meghatározott változót állíthat be, ha WIDTH = 700 HIGH = 800 értéket tartalmaz.

A Pygame zero előre definiált funkciókat biztosít a játékhurok normál működésének kezelésére:

A draw () függvény

Ezt a függvényt ugyanúgy beírhatjuk a programunkba, mint a Pythonban általában definiálnánk.

A Pygame Zero ugyanazokat a formázási szabályokat követi, mint a Python, ezért ügyelnie kell a kód helyes behúzására.

#!/usr/bin/python3 # állítsa be a tolmácsot

import pgzrun # import pgzero modul WIDTH = 700 # az ablak szélessége HEIGHT = 800 # az ablak magassága def draw (): # pygame zero draw funkció screen.fill ((128, 128, 128)) # töltse ki a képernyőt RGB -vel színes screen.draw.text ("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()

Először is el kell menteni a programfájlt, és nevet kell adni neki.

Ezután nyissa meg a Terminál ablakot, menjen a fájl helyére, és írja be:

./.py

4. lépés: Rajzold le a színészedet

Rajzold a színészedet
Rajzold a színészedet

Most, hogy megvan a színpadunk, létrehozhatjuk színészeinket, ők a Pygame Zero dinamikus objektumai.

Egy színészt betölthetünk a program tetejére beírva:

autó = színész ("versenyautó")

A Pygame Zero programban a képeinket a images nevű könyvtárban kell tárolni, a programfájlunk mellett. Így színészünk egy képfájlt keresne a racecar.png nevű képek mappában. Ez lehet GIF vagy-j.webp

Beállíthatja a pozícióját a képernyőn, ha beírja:

autó.pos = 350, 560

Ezt követően a draw () függvényben gépelhetünk

car.draw () # rajzolja versenyautónkat a meghatározott pozícióba

A teljes program a következő lesz:

#!/usr/bin/python3

import pgzrun WIDTH = 700 # az ablak szélessége HEIGHT = 800 # az ablak magassága autó = Színész ("versenyautó") car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # töltse ki a képernyőt car.draw () pgzrun.go ()

Tesztelje a programot, hogy megbizonyosodjon arról, hogy ez működik.

5. lépés: A színész irányítása

Irányítsd a színészt
Irányítsd a színészt

Miután az autó rajzát a képernyőn láttuk, a következő lépés az, hogy a játékos mozgassa azt.

Ezt gombnyomással tehetjük meg. Ezeknek a kulcsoknak az állapotát leolvashatjuk egy másik előre meghatározott függvényben (update ()).

A frissítés () függvény

Ezt a funkciót a játék futása közben folyamatosan ellenőrzik.

Írnunk kell egy kódot, hogy érzékeljük a nyílbillentyűk lenyomását, és tegyünk is valamit.

Tehát ezt a funkciót hozzáadjuk a programunkhoz

def frissítés ():

ha billentyűzet.bal: autó.x -= 2 ha billentyűzet.jobbra: autó.x += 2 ha billentyűzet.fel: autó.y -= 2 ha billentyűzet.le: autó.y += 2

Ezek a kódsorok mozgatják az autó színészét balra, jobbra, előre és hátra.

6. lépés: A pálya építése

A pálya építése
A pálya építése

Most, hogy van egy autónk, amit kormányozhatunk, szükségünk van egy pályára, amin tovább tudunk haladni.

Színészekből fogjuk felépíteni a pályánkat, egy sorban. Létre kell hoznunk néhány listát, hogy nyomon követhessük az általunk létrehozott Színészeket.

Ezenkívül még néhány változót be kell állítanunk a pályához.

Ezután készítsünk egy új függvényt, a makeTrack () nevű funkciót. A funkció hozzáad egy színész Actor -t a bal oldalon, egyet pedig a jobb oldalon, mindkettőt a images-p.webp

trackLeft = # lista a bal oldali korlátok tárolására

trackRight = # lista a jobb oldali barry -k tárolásához trackCount = 0 # számolja a barry -k számát trackPosition = 350 trackWidth = 150 # szélesség a bal és jobb oldali korlátok között def makeTrack (): # függvény, amely egy sávot készít a bal és jobb globális trackCount számban, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Színész ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount += 1

A következő dolog, amit meg kell tennünk, az, hogy a pályaszakaszokat a képernyőn lefelé mozdítsuk az autó felé.

Írjunk egy új függvényt updateTrack () néven. Ez a funkció frissíti a sávblokkok megjelenési helyét. A számrészeket véletlen számok hozzák létre, így minden lejátszás más.

trackDriction = Hamis

SPEED = 4 # a játék sebességét állítja be véletlenszerű importálásból randint # importálja a randint osztályt véletlenszerű modulból def updateTrack (): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0, míg 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 = Igaz, ha trackPosition < trackWidth: trackDirection = False makeTrack () # hozzon létre egy új sávot a képernyő tetején

Kérjük, tekintse meg az alábbi "RaceGameDemo" nevű zip fájlt.

Ha pillanatnyilag futtatjuk a kódunkat, látnunk kell, hogy egy pálya kígyózott az autó felé. Az egyetlen probléma az, hogy át tudjuk vinni az autót a pálya korlátain, és szeretnénk bennük tartani az autót némi ütközésérzékeléssel.

7. lépés: Autóbaleset

Autóbaleset
Autóbaleset
Autóbaleset
Autóbaleset
Autóbaleset
Autóbaleset

Gondoskodnunk kell arról, hogy autónk ne érintse a Színészek pályát.

tesztelhetjük az ütközéseket az updateTrack () függvényben található colliderect () módszerrel.

Ebben a játékban a játéknak három különböző állapota lesz a változó gameStatus állapotában:

  • gameStatus == 0 # játék fut
  • gameStatus == 1 # autóbaleset
  • gameStatus == 2 # játék befejeződött

Meg kell változtatnunk a draw () függvényünket és az update () függvényünket, hogy válaszoljunk a gameStatus változóra.

Utolsó simítások

Mindössze annyit kell tennünk, hogy valamit megjelenítünk, ha a gameStatus értéke 1 vagy 2, például egy pirosat kell megjelenítenünk

zászló, ha az autó lezuhant. Ezt az alábbi kóddal tehetjük meg:

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

Ahhoz, hogy lássuk, elérte -e az autó a célt, számolnunk kell, hogy hány pályaszakaszt hoztunk létre, majd ha elérjük a 200 -at, állítsuk a gameStatus értéket 2 -re. Ezután jelenítsük meg a kockás zászlót:

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

Néhány szöveget is megjelenítünk a képernyőn, például a játék aktuális pontszámát.

Nézze meg a teljes kódlistát, hogy megtudja, hogyan illeszkedik ez az egész.

8. lépés: Futtassa a játékot a Raspberry Pi -n

Futtassa a játékot a Raspberry Pi -n
Futtassa a játékot a Raspberry Pi -n
Futtassa a játékot a Raspberry Pi -n
Futtassa a játékot a Raspberry Pi -n

A Raspberry Pi rendszeren a pgzero alapértelmezés szerint telepítve van a Raspbian Jessie 2015 szeptemberi megjelenése óta.

Csak frissítse a Raspberry Pi -t a következő paranccsal:

sudo apt-get update

Lépjen a fájl helyére, és írja be a terminált.

pgzrun.py

9. lépés: Nyertél?

Nyertél?
Nyertél?

Megkönnyítheti vagy megnehezítheti a játékot a trackWidth változó megváltoztatásával, hogy a pálya szélessége eltérő legyen. A SPEED értékét úgy módosíthatja, hogy a pálya gyorsabban vagy lassabban mozogjon.

10. lépés: Következtetés

A Pygame Zero nagyszerű választás mindazoknak, akik számítógépes játékok írásával akarnak kezdeni.

Ha bármilyen kérdése van, természetesen megjegyzést írhat. Ha többet szeretne megtudni a munkáimról, látogasson el csatornámra:

myYouTube

myTwitter

myLinkedin

Köszönöm, hogy elolvastad ezt az útmutatót ^^ és további szép napot. Szia. Ahmed Nouira.

Ajánlott: