Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Ak ste urobili nejaké kódovanie v Pythone a chceli ste napísať hru, možno máte hru Pygame Zero.
V tomto návode napíšeme jednoduchú závodnú hru.
Krok 1: Široký prehľad
Modul Pygame pridáva mnoho funkcií, ktoré vám pomôžu písať hry v Pythone.
Pygame Zero ide ešte o krok ďalej, aby vám umožnilo preskočiť ťažkopádny proces vytvárania všetkých týchto herných slučiek a nastavovania štruktúry programu.
Pygame Zero je skvelou voľbou pre každého, kto chce začať písať počítačové hry na Raspberry Pi alebo na akomkoľvek počítači so systémom Linux.
Budete potrebovať:
- Stroj s operačným systémom Linux
- Editor na písanie programu python
- Klávesnica
- Trochu predstavivosti
Súbory:
github.com/AhmNouira/-Racing-Game
Krok 2: Predpoklady
Najprv použijem svoj laptop s OS Ubuntu 18.04. Potom hru spustíme na Raspberry Pi v kroku 8.
Pred pokračovaním v tomto návode sa uistite, že ste prihlásení ako používateľ s oprávneniami sudo.
Inštalácia pipu pre Python 3
Začnite aktualizáciou zoznamu balíkov pomocou nasledujúceho príkazu:
sudo apt aktualizácia
Na nainštalovanie pipu pre Python 3 použite nasledujúci príkaz:
sudo apt install python3-pip
overte inštaláciu kontrolou verzie pip:
pip3 -verzia
Inštalácia Pygame Zero
pip3 install pgzero --user
Tým sa tiež nainštaluje Pygame. Vopred zostavené balíky Pygame
Prvým krokom na vašej ceste bude teda otvorenie Pythonu 3 IDLE alebo vášho obľúbeného editora pythonu.
Krok 3: „Hello World“v Pygame Zero
Štandardne sa okno Pygame Zero otvára vo veľkosti 800 pixelov na šírku a 600 pixelov na výšku. Môžete prispôsobiť
veľkosť okna, môžete nastaviť dve vopred určené premenné, ak zahrniete ŠÍRKU = 700 HIGH = 800.
Pygame zero poskytuje preddefinované funkcie na zvládnutie herného cyklu, ktorý bežne vykonáva:
Funkcia draw ()
Túto funkciu môžeme do nášho programu zapísať rovnako, ako by sme normálne definovali funkciu v Pythone.
Pygame Zero dodržiava rovnaké pravidlá formátovania ako Python, takže sa budete musieť postarať o správne odsadenie kódu.
#!/usr/bin/python3 # nastavte tlmočníka
import pgzrun # import pgzero modul ŠÍRKA = 700 # šírka okna VÝŠKA = 800 # výška okna def draw (): # pygame nulová kresba funkcie screen.fill ((128, 128, 128)) # vyplňte obrazovku RGB farebná obrazovka.draw.text („Hello World!“, (270, 320), # draw „Hello World!“color = (255, 255, 255), fontsize = 40) pgzrun.go ()
Najprv musíte uložiť programový súbor a pomenovať ho.
Potom otvorte okno Terminál, prejdite na umiestnenie súboru a zadajte:
./.py
Krok 4: Nakreslite svojho herca
Teraz, keď máme fázu, môžeme vytvárať svojich hercov, sú to dynamické objekty v Pygame Zero.
Herca môžeme načítať zadaním v hornej časti programu:
auto = herec („závodné auto“)
V hre Pygame Zero musia byť naše obrázky uložené v adresári s názvom images vedľa súboru nášho programu. Náš herec by teda hľadal súbor s obrázkom v priečinku s obrázkami s názvom racecar.png. Môže to byť súbor-g.webp
Jeho polohu na obrazovke môžete nastaviť zadaním:
car.pos = 350, 560
Potom v našej funkcii draw () môžeme písať
car.draw () # nakreslite naše závodné auto v definovanej polohe
Celý program bude vyzerať takto:
#!/usr/bin/python3
import pgzrun ŠÍRKA = 700 # šírka okna VÝŠKA = 800 # výška okenného auta = Herec („závodné auto“) car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # vyplňte obrazovku car.draw () pgzrun.go ()
Otestujte svoj program, aby ste sa uistili, že funguje.
Krok 5: Ovládajte herca
Keď máme na obrazovke kresbu auta, ďalšou fázou je umožniť hráčovi posunúť ju.
Môžeme to urobiť stlačením klávesov. Stav týchto kľúčov môžeme čítať vo vnútri ďalšej preddefinovanej funkcie s názvom update ().
Funkcia update ()
Táto funkcia je priebežne kontrolovaná počas hry.
Musíme napísať nejaký kód, aby sme zistili stlačenie klávesov so šípkami a tiež s tým niečo urobiť.
Túto funkciu teda pridáme do nášho programu
def aktualizácia ():
if keyboard.left: car.x -= 2 if keyboard.right: car.x += 2 if keyboard.up: car.y -= 2 if keyboard.down: car.y += 2
Tieto riadky kódu posunú herca auta doľava, doprava, dopredu a dozadu.
Krok 6: Budovanie trate
Teraz, keď máme auto, ktoré môžeme riadiť, potrebujeme stopu, po ktorej bude jazdiť.
Postavíme našu trať z hercov, jeden po druhom. Budeme musieť vytvoriť niekoľko zoznamov, aby sme mali prehľad o hercoch, ktorých vytvoríme.
Tiež budeme musieť pre trať nastaviť niekoľko ďalších premenných.
Potom urobme novú funkciu s názvom makeTrack (). Funkcia pridá jednu stopu herca vľavo a jednu vpravo, pričom obidva použijú obrázok bare-p.webp
trackLeft = # zoznam na uloženie ľavých barries
trackRight = # zoznam na ukladanie pravých barries trackCount = 0 # spočítať počet barries trackPosition = 350 trackWidth = 150 # šírka medzi ľavými a pravými barries def makeTrack (): # funkcia na vytvorenie jedného barrie v ľavom a pravom globálnom trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount += 1
Ďalšia vec, ktorú musíme urobiť, je presunúť časti trate po obrazovke smerom k autu.
Napíšeme novú funkciu s názvom updateTrack (), Táto funkcia aktualizuje miesto, kde sa objavia bloky skladieb. Skladby sú vytvárané náhodnými číslami, takže každá hra je iná.
trackDriction = False
SPEED = 4 # nastavuje rýchlosť hry z náhodného importu randint # importujte triedu randint z náhodného modulu def updateTrack (): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 while b
Pozrite si nižšie uvedený súbor zip s názvom „RaceGameDemo“.
Ak v súčasnosti spustíme kód, mali by sme vidieť stopu, ktorá sa krúti dole k autu. Jediným problémom je, že dokážeme presunúť auto cez zvodidlá a chceme v nich udržať auto s nejakou detekciou kolízie.
Krok 7: Autonehoda
Musíme zaistiť, aby sa naše auto nedotýkalo hercov dráhy.
môžeme tiež testovať zrážky pomocou metódy colliderect () v našej funkcii updateTrack ().
V tejto hre budeme mať tri rôzne stavy hry uložené v našom variabilnom stave hry:
- gameStatus == 0 # hra je spustená
- gameStatus == 1 # autonehoda
- gameStatus == 2 # hra je dokončená
Aby sme reagovali na premennú gameStatus, budeme musieť zmeniť našu funkciu draw () a našu funkciu update ().
Dokončovacie dotyky
Všetko, čo musíme teraz urobiť, je niečo zobraziť, ak je stav hry nastavený na 1 alebo 2, napríklad by sme mali zobraziť červenú
vlajka, ak auto havarovalo. Môžeme to urobiť pomocou nižšie uvedeného kódu:
screen.blit ("redflag", (230, 230))
Aby sme zistili, či auto dorazilo do cieľa, mali by sme spočítať, koľko úsekov trate bolo vytvorených, a potom možno, keď sa dostaneme na 200, nastavte gameStatus na 2. Potom zobrazte šachovnicovú vlajku:
screen.blit ("finishflag", (230, 230))
Na obrazovke tiež zobrazíme nejaký text, ako je aktuálne skóre hry.
Pozrite sa na úplný zoznam kódov a zistite, ako to všetko do seba zapadá.
Krok 8: Spustite hru na Raspberry Pi
Na Raspberry Pi bol pgzero štandardne nainštalovaný od vydania Raspbian Jessie v septembri 2015.
Aktualizujte svoj Raspberry Pi pomocou príkazu:
sudo apt-get aktualizácia
Prejdite na umiestnenie súboru a zadajte Terminál.
pgzrun.py
Krok 9: Vyhrali ste?
Hru si môžete uľahčiť alebo sťažiť zmenou premennej trackWidth, aby bola stopa odlišná. Môžete zmeniť hodnotu SPEED, aby sa trasa pohybovala rýchlejšie alebo pomalšie.
Krok 10: Záver
Pygame Zero je skvelou voľbou pre každého, kto chce začať písať počítačové hry.
Ak máte akékoľvek otázky, môžete zanechať komentár. Ak sa chcete dozvedieť viac o mojej tvorbe, navštívte môj kanál:
myYouTube
myTwitter
myLinkedin
Ďakujem, že ste si prečítali tento návod ^^ a prajem pekný deň. Uvidíme sa. Ahmed Nouira.