Kazalo:

Ustvarite svojo prvo dirkaško igro: 10 korakov
Ustvarite svojo prvo dirkaško igro: 10 korakov

Video: Ustvarite svojo prvo dirkaško igro: 10 korakov

Video: Ustvarite svojo prvo dirkaško igro: 10 korakov
Video: ТАКОВ МОЙ ПУТЬ В L4D2 2024, November
Anonim
Image
Image
Slika
Slika

Če ste naredili nekaj kodiranja Python in želite napisati igro, ki jo imate morda v Pygame Zero.

V tej vadnici bomo pisali preprosto dirkalno igro.

1. korak: širši pregled

Modul Pygame dodaja številne funkcije, ki vam pomagajo pri pisanju iger v Pythonu.

Pygame Zero gre še korak dlje, da vam omogoči preskok okornega postopka izdelave vseh teh iger in nastavitve programske strukture.

Pygame Zero je odlična izbira za vse, ki želijo začeti pisati računalniške igre na Raspberry Pi ali katerem koli drugem sistemu Linux.

Potrebovali boste:

  • Stroj z operacijskim sistemom Linux
  • Urejevalnik za pisanje programa python
  • Tipkovnica
  • Nekaj domišljije

Datoteke:

github.com/AhmNouira/-Racing-Game

2. korak: Predpogoji

Najprej bom uporabil svoj prenosnik z operacijskim sistemom Ubuntu 18.04. Nato bomo igro zagnali na Raspberry Pi v 8. koraku.

Preden nadaljujete s to vadnico, se prepričajte, da ste prijavljeni kot uporabnik s privilegiji sudo.

Namestitev pipa za Python 3

Začnite tako, da posodobite seznam paketov z naslednjim ukazom:

sudo apt posodobitev

Za namestitev pipa za Python 3 uporabite naslednji ukaz:

sudo apt namestite python3-pip

namestitev preverite tako, da preverite različico pip:

pip3 --verzija

Namestitev programa Pygame Zero

pip3 namestite pgzero --user

S tem boste namestili tudi Pygame. Vnaprej sestavljeni paketi Pygame

Prvi korak na vaši poti bo torej odpiranje Python 3 IDLE ali vašega najljubšega urejevalnika python.

3. korak: "Hello World" v Pygame Zero

Privzeto se odpre okno Pygame Zero v velikosti 800 slikovnih pik v širino in 600 pik v višino. Lahko prilagodite

velikost vašega okna lahko nastavite dve vnaprej določeni spremenljivki, če vključite WIDTH = 700 HIGH = 800.

Pygame zero ponuja vnaprej določene funkcije za ravnanje z igro, ki običajno deluje:

Funkcija draw ()

To funkcijo lahko vpišemo v naš program enako, kot bi običajno definirali funkcijo v Pythonu.

Pygame Zero sledi istim pravilom oblikovanja kot Python, zato boste morali paziti, da svojo kodo pravilno zamaknete.

#!/usr/bin/python3 # nastavite tolmača

import pgzrun # import pgzero module WIDTH = 700 # širina okna HEIGHT = 800 # višina okna def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # zapolni zaslon z RGB barvni zaslon.draw.text ("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), font = 40) pgzrun.go ()

Najprej morate shraniti programsko datoteko in ji dati ime.

Nato odprite okno terminala, pojdite na mesto datoteke in vnesite:

./.py

4. korak: Narišite svojega igralca

Narišite svojega igralca
Narišite svojega igralca

Zdaj, ko imamo postavljen oder, lahko ustvarimo svoje igralce, ki so dinamični objekti v Pygame Zero.

Igralca lahko naložimo tako, da na vrhu programa vnesemo:

avto = igralec ("dirkalnik")

V Pygame Zero morajo biti naše slike shranjene v imeniku, ki se imenuje slike, poleg programske datoteke, zato bi naš igralec iskal slikovno datoteko v mapi s slikami, imenovano racecar.png. Lahko je datoteka-g.webp

Njegov položaj na zaslonu lahko nastavite tako, da vnesete:

avto.pos = 350, 560

Po tem lahko v funkcijo draw () vtipkamo

car.draw () # narišite naš dirkalnik na določeno mesto

Celoten program bo tak:

#!/usr/bin/python3

import pgzrun WIDTH = 700 # širina okna HEIGHT = 800 # height of the window car = Actor ("racecar") car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # napolnite zaslon z car.draw () pgzrun.go ()

Preverite, ali program deluje.

5. korak: Nadzirajte igralca

Nadzirajte igralca
Nadzirajte igralca

Ko imamo na zaslonu risbo avtomobila, je naslednja faza, da igralcu omogočimo premikanje.

To lahko storimo s pritiskom na tipke. Stanje teh ključev lahko preberemo v drugi vnaprej določeni funkciji, imenovani update ().

Funkcija update ()

Ta funkcija se med izvajanjem igre neprestano preverja.

Napisati moramo neko kodo, da zaznamo pritiske tipk s puščicami in tudi naredimo nekaj glede tega.

Zato bomo to funkcijo dodali v naš program

def update ():

if keyboard.left: car.x -= 2 if keyboard.right: car.x += 2 if keyboard.up: car.y -= 2 if keyboard.down: car.y += 2

Te vrstice kode bodo premikale igralca avtomobila levo, desno, naprej in nazaj.

Korak 6: Gradnja proge

Gradnja proge
Gradnja proge

Zdaj, ko imamo avto, s katerim lahko upravljamo, potrebujemo stezo, po kateri se lahko pelje.

Svojo skladbo bomo gradili iz igralcev, eno za drugo. Za spremljanje igralcev, ki jih ustvarimo, bomo morali narediti nekaj seznamov.

Za skladbo bomo morali nastaviti tudi nekaj spremenljivk.

Nato naredimo novo funkcijo, imenovano makeTrack (), Funkcija bo dodala eno skladbo Actor na levi in eno na desno, oba s sliko bare-p.webp

trackLeft = # seznam za shranjevanje levih prepadov

trackRight = # seznam za shranjevanje desnih prečk trackCount = 0 # šteje število prečk trackPosition = 350 trackWidth = 150 # širina med levo in desno zaporo def makeTrack (): # funkcija, da naredite eno barrie na levi in desni globalni slediCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount += 1

Naslednja stvar, ki jo moramo storiti, je, da odseke poti premaknemo navzdol po zaslonu proti avtomobilu.

Napišemo novo funkcijo, imenovano updateTrack (), Ta funkcija se posodobi, kjer se bodo pojavili bloki skladb. Kosi skladb so ustvarjeni z naključnimi številkami, tako da je vsako predvajanje drugačno.

trackDriction = False

SPEED = 4 # nastavi hitrost igre iz naključnega uvoza randint # uvozite razred randint iz naključnega modula def updateTrack (): globalna trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 medtem ko b 32: če trackDirection == False: trackPosition += 16, če trackDirection == True: trackPosition - = 16, če je randint (0, 4) == 1: trackDirection = ni trackDirection če trackPosition> 700 - trackWidth: trackDirection = True, če trackPosition < trackWidth: trackDirection = False makeTrack () # ustvarite novo skladbo na vrhu zaslona

Prosimo, poglejte spodnjo datoteko zip z imenom "RaceGameDemo".

Če trenutno zaženemo svojo kodo, bi morali videti sledi, ki se spuščajo proti avtomobilu. Edina težava je, da lahko avto premaknemo čez ovire in želimo avto obdržati v njih z zaznavanjem trkov.

7. korak: Avtomobilska nesreča

Prometna nesreča
Prometna nesreča
Prometna nesreča
Prometna nesreča
Prometna nesreča
Prometna nesreča

Poskrbeti moramo, da se naš avto ne dotakne skladbe Actors.

lahko tudi preskusimo trke z uporabo metode colliderect () v naši funkciji updateTrack ().

V tej igri bomo imeli tri različna stanja igre, shranjene v naši spremenljivi igri Status:

  • gameStatus == 0 # igra teče
  • gameStatus == 1 # prometna nesreča
  • gameStatus == 2 # igra končana

Za odziv na spremenljivko gameStatus bomo morali spremeniti funkcijo draw () in update ().

Zaključni dotiki

Zdaj moramo le prikazati nekaj, če je gameStatus nastavljen na 1 ali 2, na primer bi morali prikazati rdečo

zastavo, če je avto trčil. To lahko storimo s spodnjo kodo:

screen.blit ("rdeča zastava", (230, 230))

Če želimo preveriti, ali je avto prišel do cilja, bi morali prešteti, koliko odsekov sledi je bilo ustvarjenih, nato pa morda, ko pridemo do 200, nastavimo gameStatus na 2. Nato prikažemo karirano zastavico:

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

Na zaslonu bomo prikazali tudi nekaj besedila, kot je trenutni rezultat igre.

Oglejte si celoten seznam kod, da vidite, kako se vse to ujema.

8. korak: Zaženite igro na Raspberry Pi

Zaženite igro na Raspberry Pi
Zaženite igro na Raspberry Pi
Zaženite igro na Raspberry Pi
Zaženite igro na Raspberry Pi

Na Raspberry Pi je pgzero privzeto nameščen od izdaje Raspbian Jessie septembra 2015.

Posodobite Raspberry Pi z ukazom:

sudo apt-get posodobitev

Pojdite na mesto datoteke in vnesite Terminal.

pgzrun.py

9. korak: Ste zmagali?

Si zmagal?
Si zmagal?

Igro lahko olajšate ali otežite tako, da spremenite spremenljivko trackWidth, da bo skladba drugačne širine. Vrednost SPEED lahko spremenite, da se skladba premika hitreje ali počasneje.

10. korak: Zaključek

Pygame Zero je odlična izbira za vse, ki želite začeti pisati računalniške igre.

Če imate kakršno koli vprašanje, lahko pustite komentar. Če si želite ogledati več o mojih delih, obiščite moj kanal:

myYouTube

myTwitter

myLinkedin

Hvala, ker ste prebrali ta navodila ^^ in lep dan želim. Se vidiva. Ahmed Nouira.

Priporočena: