Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Pokud jste provedli nějaké kódování v Pythonu a chtěli jste napsat hru, můžete mít Pygame Zero.
V tomto tutoriálu napíšeme jednoduchou závodní hru.
Krok 1: Široký přehled
Modul Pygame přidává mnoho funkcí, které vám pomohou psát hry v Pythonu.
Pygame Zero jde ještě o krok dále, aby vám umožnil přeskočit těžkopádný proces vytváření všech těchto herních smyček a nastavení struktury vašeho programu.
Pygame Zero je skvělou volbou pro každého, kdo chce začít psát počítačové hry na Raspberry Pi nebo na jakémkoli Linuxovém počítači.
Budeš potřebovat:
- Stroj s operačním systémem Linux
- Editor pro psaní programu python
- Klávesnice
- Trochu fantazie
Soubory:
github.com/AhmNouira/-Racing-Game
Krok 2: Předpoklady
Nejprve budu používat svůj notebook s operačním systémem Ubuntu 18.04. Poté spustíme hru na Raspberry Pi v kroku 8.
Než budete pokračovat v tomto kurzu, ujistěte se, že jste přihlášeni jako uživatel s oprávněními sudo.
Instalace pipu pro Python 3
Začněte aktualizací seznamu balíků pomocí následujícího příkazu:
sudo apt aktualizace
K instalaci pipu pro Python 3 použijte následující příkaz:
sudo apt install python3-pip
ověřte instalaci kontrolou verze pipu:
pip3 -verze
Instalace Pygame Zero
pip3 install pgzero --user
Tím se také nainstaluje Pygame. Předkompilované balíčky Pygame
Prvním krokem na vaší cestě tedy bude otevření Pythonu 3 IDLE nebo vašeho oblíbeného editoru pythonu.
Krok 3: „Hello World“v Pygame Zero
Ve výchozím nastavení se otevře okno Pygame Zero o velikosti 800 pixelů na šířku a 600 pixelů na výšku. Můžete přizpůsobit
velikost okna, můžete nastavit dvě předdefinované proměnné, pokud zahrnete WIDTH = 700 HIGH = 800.
Pygame zero poskytuje předdefinované funkce pro zpracování herní smyčky, kterou normálně provádí:
Funkce draw ()
Tuto funkci můžeme do našeho programu zapsat stejně, jako bychom normálně definovali funkci v Pythonu.
Pygame Zero dodržuje stejná pravidla formátování jako Python, takže se budete muset postarat o správné odsazení kódu.
#!/usr/bin/python3 # nastavte tlumočníka
import pgzrun # import pgzero modul ŠÍŘKA = 700 # šířka okna VÝŠKA = 800 # výška okna def draw (): # pygame funkce nulové kresby screen.fill ((128, 128, 128)) # vyplňte obrazovku RGB barevná obrazovka.draw.text („Hello World!“, (270, 320), # draw „Hello World!“color = (255, 255, 255), fontsize = 40) pgzrun.go ()
Nejprve musíte uložit soubor programu a pojmenovat jej.
Poté otevřete okno Terminál, přejděte do umístění souboru a zadejte:
./.py
Krok 4: Nakreslení vašeho herce
Nyní, když máme sadu scén, můžeme vytvářet naše herce, jsou to dynamické objekty v Pygame Zero.
Můžeme načíst herce zadáním v horní části programu:
auto = herec („závodní auto“)
V Pygame Zero musí být naše obrázky uloženy v adresáři s názvem images vedle souboru našeho programu. Náš herec by tedy hledal soubor obrázku ve složce images s názvem racecar.png. Může to být soubor-g.webp
Jeho polohu na obrazovce můžete nastavit zadáním:
car.pos = 350, 560
Poté v naší funkci draw () můžeme psát
car.draw () # nakreslete náš závodní vůz v jeho definované poloze
Celý program bude vypadat takto:
#!/usr/bin/python3
import pgzrun ŠÍŘKA = 700 # šířka okna VÝŠKA = 800 # výška okenního vozu = Herec („závodní auto“) car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # vyplňte obrazovku pomocí car.draw () pgzrun.go ()
Otestujte svůj program, abyste se ujistili, že funguje.
Krok 5: Ovládejte herce
Jakmile máme kresbu auta na obrazovce, další fází je umožnit hráči pohybovat.
Můžeme to udělat stisknutím kláves. Stav těchto klíčů můžeme přečíst uvnitř jiné předdefinované funkce s názvem update ().
Funkce update ()
Tato funkce je průběžně kontrolována, když je hra spuštěna.
Musíme napsat nějaký kód, který detekuje stisknutí kláves se šipkami a také s tím něco udělat.
Tuto funkci tedy přidáme do našeho programu
def aktualizace ():
if keyboard.left: car.x -= 2 if keyboard.right: car.x += 2 if keyboard.up: car.y -= 2 if keyboard.down: car.y += 2
Tyto řádky kódu budou pohybovat hercem auta doleva, doprava, dopředu a dozadu.
Krok 6: Budování stopy
Nyní, když máme auto, které můžeme řídit, potřebujeme stopu, po které bude moci jet.
Postavíme naši stopu z herců, jednu řadu za druhou. Budeme muset vytvořit nějaké seznamy, abychom měli přehled o aktérech, které vytváříme.
Také budeme muset pro trať nastavit několik dalších proměnných.
Potom vytvořme novou funkci s názvem makeTrack (). Funkce přidá jednu stopu herce vlevo a jednu vpravo, oba pomocí obrázku bare-p.webp
trackLeft = # seznam pro uložení levých barries
trackRight = # seznam pro uložení pravých barries trackCount = 0 # spočítat počet barries trackPosition = 350 trackWidth = 150 # šířka mezi levou a pravou barries def makeTrack (): # funkce pro vytvoření jednoho barrie na levé a pravé globální trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount += 1
Další věc, kterou musíme udělat, je přesunout části trati po obrazovce směrem k autu.
Pojďme napsat novou funkci s názvem updateTrack (), Tato funkce aktualizuje, kde se objeví bloky stop. Skladby jsou vytvářeny náhodnými čísly, takže každá hra je jiná.
trackDriction = False
SPEED = 4 # nastavuje rychlost hry z náhodného importu randint # importujte třídu randint z náhodného modulu def updateTrack (): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 while b
Přečtěte si níže uvedený soubor zip s názvem „RaceGameDemo“.
Pokud v tuto chvíli spustíme náš kód, měli bychom vidět stopu, která se klouže dolů k autu. Jediným problémem je, že můžeme přesunout auto přes závory a chceme v nich udržet auto s nějakou detekcí kolize.
Krok 7: Autonehoda
Musíme zajistit, aby se naše auto nedotklo herců.
můžeme také testovat kolize pomocí metody colliderect () v naší funkci updateTrack ().
V této hře budeme mít tři různé stavy hry uložené v našem variabilním stavu hry:
- gameStatus == 0 # hra běží
- gameStatus == 1 # autonehoda
- gameStatus == 2 # hra dokončena
Abychom reagovali na proměnnou gameStatus, budeme muset změnit naši funkci draw () a naši funkci update ().
Dokončovací úpravy
Vše, co musíme nyní udělat, je něco zobrazit, pokud je stav hry nastaven na 1 nebo 2, například bychom měli zobrazit červenou
vlajka, pokud auto havarovalo. Můžeme to udělat pomocí níže uvedeného kódu:
screen.blit ("redflag", (230, 230))
Abychom zjistili, zda auto dorazilo do cíle, měli bychom spočítat, kolik úseků trati bylo vytvořeno, a pak možná, až se dostaneme na 200, nastavte gameStatus na 2. Poté zobrazte šachovnicovou vlajku:
screen.blit ("finishflag", (230, 230))
Na obrazovce také zobrazíme nějaký text, jako je aktuální skóre hry.
Podívejte se na úplný seznam kódů, abyste zjistili, jak to všechno do sebe zapadá.
Krok 8: Spusťte hru na Raspberry Pi
Na Raspberry Pi byl pgzero standardně nainstalován od vydání Raspbian Jessie v září 2015.
Stačí aktualizovat Raspberry Pi pomocí příkazu:
sudo apt-get update
Přejděte na umístění souboru a zadejte Terminál.
pgzrun.py
Krok 9: Vyhráli jste?
Hru si můžete usnadnit nebo ztížit změnou proměnné trackWidth, aby byla stopa jiná. Můžete změnit hodnotu SPEED, aby se dráha pohybovala rychleji nebo pomaleji.
Krok 10: Závěr
Pygame Zero je skvělou volbou pro každého, kdo chce začít psát počítačové hry.
Pokud máte nějaké otázky, můžete samozřejmě zanechat komentář. Chcete -li se o mých dílech dozvědět více, navštivte můj kanál:
myYouTube
myTwitter
myLinkedin
Děkujeme, že jste si přečetli tento návod ^^ a přejeme pěkný den. Uvidíme se. Ahmed Nouira.