Vytvořte svou první závodní hru: 10 kroků
Vytvořte svou první závodní hru: 10 kroků
Anonim
Image
Image
obraz
obraz

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

Kreslení vašeho herce
Kreslení 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

Ovládejte herce
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

Budování trati
Budování trati

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 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 () # vytvořte novou stopu v horní části obrazovky

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

Bouračka
Bouračka
Bouračka
Bouračka
Bouračka
Bouračka

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

Spusťte hru na Raspberry Pi
Spusťte hru na Raspberry Pi
Spusťte hru na Raspberry Pi
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?

Vyhrál jsi?
Vyhrál jsi?

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.