Cuprins:

Creați-vă primul joc de curse: 10 pași
Creați-vă primul joc de curse: 10 pași

Video: Creați-vă primul joc de curse: 10 pași

Video: Creați-vă primul joc de curse: 10 pași
Video: 👀 7 Idei de jocuri 👉 distractie in casă 💝 2024, Noiembrie
Anonim
Image
Image
Imagine
Imagine

Dacă ați făcut unele coduri Python și ați dorit să scrieți un joc, este posibil să aveți în Pygame Zero.

În acest tutorial vom scrie un simplu joc de curse.

Pasul 1: Prezentare generală

Modulul Pygame adaugă multe funcții care vă ajută să scrieți jocuri în Python.

Pygame Zero face un pas mai departe pentru a vă permite să treceți peste procesul greoi de a face toate acele bucle de joc și de a vă configura structura programului.

Pygame Zero este o alegere excelentă pentru oricine dorește să scrie jocuri pe computer pe Raspberry Pi sau pe orice mașină Linux.

O să ai nevoie:

  • Mașină care rulează sistemul de operare Linux
  • Editor pentru a scrie programul Python
  • Tastatură
  • Oarecare imaginație

Fișiere:

github.com/AhmNouira/-Racing-Game

Pasul 2: premise

Mai întâi voi folosi laptopul cu sistemul de operare Ubuntu 18.04. Apoi vom rula jocul pe Raspberry Pi la pasul 8.

Înainte de a continua cu acest tutorial, asigurați-vă că sunteți conectat ca utilizator cu privilegii sudo.

Instalarea pip pentru Python 3

Începeți prin actualizarea listei de pachete utilizând următoarea comandă:

actualizare sudo apt

Utilizați următoarea comandă pentru a instala pip pentru Python 3:

sudo apt instalează python3-pip

verificați instalarea verificând versiunea pip:

pip3 --versiune

Instalarea Pygame Zero

pip3 instalează pgzero --user

Aceasta va instala, de asemenea, Pygame. Pachete Pygame precompilate

Deci, primul pas în călătoria dvs. va fi să deschideți Python 3 IDLE sau editorul dvs. preferat de python.

Pasul 3: „Hello World” în Pygame Zero

În mod implicit, fereastra Pygame Zero se deschide la dimensiunea de 800 pixeli lățime cu 600 pixeli înălțime. Puteți personaliza

dimensiunea ferestrei dvs., există două variabile predefinite pe care le puteți seta, dacă includeți LĂȚIME = 700 ÎNALT = 800.

Pygame zero oferă funcții predefinite pentru a gestiona bucla de joc pe care o îndeplinește în mod normal:

Funcția draw ()

Putem scrie această funcție în programul nostru la fel cum am defini în mod normal o funcție în Python.

Pygame Zero respectă aceleași reguli de formatare ca Python, deci va trebui să aveți grijă să vă indentați corect codul.

#! / usr / bin / python3 # setează interpretul

import pgzrun # import pgzero module WIDTH = 700 # lățimea ferestrei HEIGHT = 800 # înălțimea ferestrei def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # umple ecranul cu RGB color screen.draw.text ("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()

Mai întâi de toate, trebuie să salvați fișierul de program și să-i dați un nume.

Apoi deschideți o fereastră Terminal, accesați locația fișierului și tastați:

./.py

Pasul 4: Desenează-ți actorul

Desenează-ți actorul
Desenează-ți actorul

Acum că avem scenariul, ne putem crea actorii, ei sunt obiecte dinamice în Pygame Zero.

Putem încărca un actor tastând în partea de sus a programului:

masina = Actor ("racecar")

În Pygame Zero, imaginile noastre trebuie să fie stocate într-un director numit imagini, lângă fișierul programului nostru. Astfel, Actorul nostru ar căuta un fișier imagine în folderul de imagini numit racecar.png. Poate fi un fișier-g.webp

Puteți seta poziția sa pe ecran tastând:

car.pos = 350, 560

După aceea, în funcția noastră draw () putem tasta

car.draw () # atrageți mașina de curse în poziția definită

Programul complet va fi astfel:

#! / usr / bin / python3

import pgzrun WIDTH = 700 # width of the window HEIGHT = 800 # height of the window car = Actor ("racecar") car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # umpleți ecranul cu car.draw () pgzrun.go ()

Testați-vă programul pentru a vă asigura că funcționează.

Pasul 5: Controlați actorul

Controlează actorul
Controlează actorul

Odată ce avem mașina desenată pe ecran, etapa următoare este de a permite jucătorului să o miște.

Putem face acest lucru prin apăsarea tastelor. Putem citi starea acestor taste într-o altă funcție predefinită numită update ().

Funcția update ()

Această funcție este verificată continuu în timp ce jocul rulează.

Trebuie să scriem un cod pentru a detecta apăsarea tastelor săgeților și, de asemenea, pentru a face ceva în legătură cu aceasta.

Deci vom adăuga această funcție la programul nostru

actualizare def ():

dacă tastatură.stânga: mașină.x - = 2 dacă tastatură.dreapta: mașină.x + = 2 dacă tastatură.up: mașină.y - = 2 dacă tastatură. jos: mașină.y + = 2

Aceste linii de cod vor muta mașina Actor la stânga, la dreapta, înainte și înapoi.

Pasul 6: Construirea pistei

Construirea pistei
Construirea pistei

Acum, că avem o mașină pe care o putem conduce, avem nevoie de o pistă pentru a merge mai departe.

Vom construi piesa noastră din Actori, rând pe rând. Va trebui să facem câteva liste pentru a ține evidența actorilor pe care îi creăm.

De asemenea, va trebui să configurăm încă câteva variabile pentru pistă.

Apoi, să facem o nouă funcție numită makeTrack (), funcția va adăuga o piesă Actor în stânga și una în dreapta, ambele folosind imaginea bare-p.webp

trackLeft = # listă pentru a stoca bariere din stânga

trackRight = # listă pentru a stoca bariere din dreapta trackCount = 0 # numărați numărul de bariere trackPosition = 350 trackWidth = 150 # lățime între bariile din stânga și din dreapta def makeTrack (): # funcție pentru a face o barrie la stânga și la dreapta trackCount global, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount + = 1

Următorul lucru pe care trebuie să-l facem este să mutăm secțiunile de pistă pe ecran spre mașină.

Să scriem o nouă funcție numită updateTrack (), această funcție se actualizează unde vor apărea blocurile de piese. Piesele piesei sunt create prin numere aleatorii, astfel încât fiecare redare este diferită.

trackDriction = False

SPEED = 4 # setează viteza jocului din import aleatoriu randint # import clasa randint din modul aleatoriu def updateTrack (): trackCount global, trackPosition, trackDirection, trackWidth, SPEED b = 0 în timp ce 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 () # creați o piesă nouă în partea de sus a ecranului

Vă rugăm să consultați fișierul zip de mai jos, denumit „RaceGameDemo”.

Dacă rulăm codul nostru în acest moment, ar trebui să vedem o pistă care se strecoară spre mașină. Singura problemă este că putem deplasa mașina peste barierele căii ferate și vrem să păstrăm mașina în interiorul lor cu o detecție a coliziunii.

Pasul 7: Crash auto

Crash auto
Crash auto
Crash auto
Crash auto
Crash auto
Crash auto

Trebuie să ne asigurăm că mașina noastră nu atinge pista Actori.

la fel de bine putem testa pentru coliziuni folosind metoda colliderect () în funcția noastră updateTrack ().

În acest joc vom avea trei stări diferite față de joc stocate în starea noastră variabilă de joc:

  • gameStatus == 0 # jocul rulează
  • gameStatus == 1 # accident de mașină
  • gameStatus == 2 # joc terminat

Va trebui să ne schimbăm funcția draw () și funcția update () pentru a răspunde variabilei gameStatus.

Finisaje

Tot ce trebuie să facem acum este să afișăm ceva dacă gameStatus este setat la 1 sau 2, de exemplu ar trebui să afișăm un roșu

steag, dacă mașina s-a prăbușit. Putem face acest lucru cu codul de mai jos:

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

Pentru a vedea dacă mașina a ajuns la final, ar trebui să numărăm câte secțiuni de pistă au fost create și apoi, probabil, când ajungem la 200, setați gameStatus la 2. Apoi afișați steagul în carouri:

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

De asemenea, vom afișa un anumit text pe ecran, cum ar fi scorul actual al jocului.

Aruncați o privire la lista completă a codului pentru a vedea cum se potrivește totul.

Pasul 8: Rulați jocul pe Raspberry Pi

Rulați jocul pe Raspberry Pi
Rulați jocul pe Raspberry Pi
Rulați jocul pe Raspberry Pi
Rulați jocul pe Raspberry Pi

Pe Raspberry Pi pgzero a fost instalat implicit de la lansarea Raspbian Jessie în septembrie 2015.

Actualizați Raspberry Pi utilizând comanda:

sudo apt-get update

Mergeți la locația fișierului și tastați terminalul.

pgzrun.py

Pasul 9: Ai câștigat?

Ai castigat?
Ai castigat?

Puteți face jocul mai ușor sau mai greu modificând variabila trackWidth pentru a face pista cu o lățime diferită. Puteți schimba valoarea SPEED pentru a face pista să se miște mai repede sau mai lent.

Pasul 10: Concluzie

Pygame Zero este o alegere excelentă pentru oricine dorește să înceapă să scrie jocuri pe computer.

Dacă aveți orice întrebare, desigur, puteți lăsa un comentariu. Pentru a vedea mai multe despre lucrările mele, vă rugăm să vizitați canalul meu:

myYouTube

myTwitter

myLinkedin

Vă mulțumim că ați citit acest instructabil ^^ și să aveți o zi plăcută. Ne mai vedem. Ahmed Nouira.

Recomandat: