Obsah:

Vytvorte si svoju prvú závodnú hru: 10 krokov
Vytvorte si svoju prvú závodnú hru: 10 krokov

Video: Vytvorte si svoju prvú závodnú hru: 10 krokov

Video: Vytvorte si svoju prvú závodnú hru: 10 krokov
Video: Полный курс React Query за час | TanStack Query v4 для начинающих 2024, November
Anonim
Image
Image
Obrázok
Obrázok

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

Kreslenie vášho herca
Kreslenie vášho 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

Ovládajte herca
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

Budovanie trate
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 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 () # vytvorte novú stopu v hornej časti obrazovky

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

Autonehoda
Autonehoda
Autonehoda
Autonehoda
Autonehoda
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

Spustite hru na Raspberry Pi
Spustite hru na Raspberry Pi
Spustite hru na Raspberry Pi
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?

Vyhral si?
Vyhral si?

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.

Odporúča: