INHOUDSOPGAWE:

Skep u eerste resiespel: 10 stappe
Skep u eerste resiespel: 10 stappe

Video: Skep u eerste resiespel: 10 stappe

Video: Skep u eerste resiespel: 10 stappe
Video: Грунтовка развод маркетологов? ТОП-10 вопросов о грунтовке. 2024, Julie
Anonim
Image
Image
Beeld
Beeld

As u Python -kodering gedoen het en 'n speletjie wou skryf wat u moontlik in Pygame Zero het.

In hierdie handleiding skryf ons 'n eenvoudige resiespel.

Stap 1: die breë oorsig

Die Pygame -module voeg baie funksies by wat u help om speletjies in Python te skryf.

Pygame Zero gaan 'n stap verder om u te laat oorslaan van die omslagtige proses om al die speletjielusse te maak en u programstruktuur op te stel.

Pygame Zero is 'n uitstekende keuse vir almal wat rekenaarspeletjies op die Raspberry Pi of enige Linux -masjien wil begin skryf.

U benodig:

  • Masjien wat Linux bedryfstelsel bedryf
  • Redakteur om python -program te skryf
  • Sleutelbord
  • Bietjie verbeelding

Lêers:

github.com/AhmNouira/-Racing-Game

Stap 2: Voorvereistes

Eerstens gebruik ek my skootrekenaar met Ubuntu 18.04 OS. Dan sal ons die spel op Raspberry Pi in stap 8 uitvoer.

Voordat u met hierdie tutoriaal voortgaan, moet u seker wees dat u aangemeld is as 'n gebruiker met sudo -voorregte.

Installeer pip vir Python 3

Begin deur die pakketlys op te dateer met die volgende opdrag:

sudo apt -opdatering

Gebruik die volgende opdrag om pip vir Python 3 te installeer:

sudo apt installeer python3-pip

verifieer die installasie deur die pip -weergawe na te gaan:

pip3 -weergawe

Die installering van Pygame Zero

pip3 installeer pgzero --user

Dit sal ook Pygame installeer. Vooraf saamgestelde Pygame-pakkette

Die eerste stap op u reis is dus om die Python 3 IDLE of u gunsteling python -redakteur oop te maak.

Stap 3: "Hello World" in Pygame Zero

Die Pygame Zero -venster word standaard oopgemaak met 'n grootte van 800 pixels breed en 600 pixels hoog. U kan aanpas

die grootte van u venster, is daar twee voorafbepaalde veranderlikes wat u kan stel, as u WIDTH = 700 HIGH = 800 insluit.

Pygame zero bied vooraf gedefinieerde funksies om die spellus te hanteer wat normaalweg uitgevoer word:

Die trekking () Funksie

Ons kan hierdie funksie in ons program inskryf soos wat ons normaalweg 'n funksie in Python sou definieer.

Pygame Zero volg dieselfde opmaakreëls as Python, dus moet u sorg dat u u kode korrek inspring.

#!/usr/bin/python3 # stel die tolk in

invoer pgzrun # invoer pgzero module WIDTH = 700 # breedte van die venster HEIGHT = 800 # hoogte van die venster def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # vul die skerm met RGB kleur screen.draw.text ("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()

Eerstens moet u u programlêer stoor en 'n naam gee.

Maak dan 'n Terminal -venster oop, gaan na u lêer se ligging en tik:

./.py

Stap 4: Teken jou akteur

Teken jou akteur
Teken jou akteur

Noudat ons ons verhoog opgestel het, kan ons ons akteurs skep, dit is dinamiese voorwerpe in Pygame Zero.

Ons kan 'n akteur laai deur die bokant van die program in te tik:

motor = akteur ("renwa")

In Pygame Zero moet ons beelde langs ons programlêer in 'n gids genaamd images gestoor word, so ons akteur soek 'n beeldlêer in die prentemap met die naam racecar.png. Dit kan 'n GIF- of 'n JPG-lêer wees, maar dit word aanbeveel dat u beelde 'n PNG-lêer is, aangesien die lêertipe goeie kwaliteit beelde bied met transparante.

U kan die posisie op die skerm stel deur te tik:

motor.pos = 350, 560

Daarna kan ons in ons teken () funksie tik

car.draw () # trek ons renmotor op sy gedefinieerde posisie

Die volledige program sal soos volg wees:

#!/usr/bin/python3

invoer pgzrun WIDTH = 700 # breedte van die venster HEIGHT = 800 # hoogte van die venster car = Actor ("racecar") car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # vul die skerm met car.draw () pgzrun.go ()

Toets u program om seker te maak dat dit werk.

Stap 5: Beheer die akteur

Beheer die akteur
Beheer die akteur

Sodra ons ons motor op die skerm teken, is die volgende fase om die speler in staat te stel om dit te beweeg.

Ons kan dit doen met die druk van die toets. Ons kan die toestand van hierdie sleutels in 'n ander vooraf gedefinieerde funksie genaamd update () lees.

Die funksie update ()

Hierdie funksie word voortdurend nagegaan terwyl die spel aan die gang is.

Ons moet 'n kode skryf om die druk van die pyltjie sleutels op te spoor en ook iets daaraan te doen.

Dus sal ons hierdie funksie by ons program voeg

def update ():

as sleutelbord.links: motor.x -= 2 as sleutelbord.regs: motor.x += 2 as sleutelbord.op: motor.y -= 2 as sleutelbord.onder: motor.y += 2

Hierdie kode lyne sal die motorakteur na links, regs, vorentoe en agtertoe beweeg.

Stap 6: Bou die baan

Die bou van die baan
Die bou van die baan

Noudat ons 'n motor het wat ons kan bestuur, het ons 'n baan nodig om op te ry.

Ons gaan ons baan uit Actors bou, een ry op 'n slag. Ons sal 'n paar lyste moet maak om tred te hou met die akteurs wat ons skep.

Ons sal ook nog 'n paar veranderlikes vir die snit moet opstel.

Dan maak ons 'n nuwe funksie genaamd makeTrack (). Die funksie voeg een snit akteur links en een regs by, beide met behulp van die beeld bare-p.webp

trackLeft = # lys om linkerbars op te slaan

trackRight = # lys om regte barries op te slaan trackCount = 0 # tel die aantal barries trackPosition = 350 trackWidth = 150 # breedte tussen links en regs barries def makeTrack (): # funksie om een barrie aan die linker en regter globale trackCount te maak, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount += 1

Die volgende ding wat ons moet doen, is om die gedeeltes van die baan op die skerm na die motor te skuif.

Kom ons skryf 'n nuwe funksie genaamd updateTrack (), hierdie funksie werk op waar die snitblokke sal verskyn. Die snitstukke word deur ewekansige getalle geskep, sodat elke spel anders is.

trackDriction = Onwaar

SPEED = 4 # stel die spoed van die spel in vanaf willekeurige invoer randint # invoer die randint -klas uit random module def updateTrack (): globale trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 terwyl b 32: as trackDirection == Onwaar: trackPosition += 16 as trackDirection == True: trackPosition - = 16 as randint (0, 4) == 1: trackDirection = nie trackDirection as trackPosition> 700 - trackWidth: trackDirection = True as trackPosition < trackWidth: trackDirection = Valse makeTrack () # skep 'n nuwe snit bo -aan die skerm

Verwys na die zip -lêer hieronder met die naam "RaceGameDemo".

As ons tans ons kode gebruik, moet ons 'n baan sien wat na die motor afdraai. Die enigste probleem is dat ons die motor oor die spoorgrense kan beweeg, en ons wil die motor daarin hou met 'n paar botsingsopsporing.

Stap 7: Motorongeluk

Motorongeluk
Motorongeluk
Motorongeluk
Motorongeluk
Motorongeluk
Motorongeluk

Ons moet seker maak dat ons motor nie die baan Actors raak nie.

ons kan ook toets vir botsings met behulp van die metode colliderect () in ons updateTrack () -funksie.

In hierdie spel het ons drie verskillende toestande vir die spel wat in ons veranderlike gameStatus gestoor is:

  • gameStatus == 0 # spel is aan die gang
  • gameStatus == 1 # motorongeluk
  • gameStatus == 2 # spel klaar

Ons sal ons draw () funksie en ons update () funksie moet verander om te reageer op die gameStatus veranderlike.

Afwerking

Al wat ons nou moet doen, is om iets te vertoon as gameStatus op 1 of 2 is, byvoorbeeld, ons moet 'n rooi

vlag, as die motor neergestort het. Ons kan dit doen met die onderstaande kode:

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

Om te sien of die motor die eindpunt bereik het, moet ons tel hoeveel snitafdelings daar gemaak is, en dan, as ons by 200 kom, stel GameStatus op 2. Dan wys die geruite vlag:

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

Ons sal ook teks op die skerm vertoon, soos die huidige telling van die spel.

Kyk na die volledige kodelys om te sien hoe dit alles bymekaar pas.

Stap 8: Begin die spel op Raspberry Pi

Begin die spel op Raspberry Pi
Begin die spel op Raspberry Pi
Begin die spel op Raspberry Pi
Begin die spel op Raspberry Pi

Op Raspberry Pi is pgzero standaard geïnstalleer sedert die vrystelling van Raspbian Jessie in September 2015.

Dateer net u Raspberry Pi op met die opdrag:

sudo apt-get update

Gaan na u lêer se ligging en tik die Terminal in.

pgzrun.py

Stap 9: Het jy gewen?

Het jy gewen?
Het jy gewen?

U kan die spel makliker of moeiliker maak deur die trackWidth -veranderlike te verander om die baan 'n ander breedte te maak. U kan die waarde van SPEED verander om die baan vinniger of stadiger te laat beweeg.

Stap 10: Gevolgtrekking

Pygame Zero is 'n uitstekende keuse vir almal wat rekenaarspeletjies wil begin skryf.

As u enige vrae het, kan u natuurlik 'n opmerking lewer. Vir meer inligting oor my werke, besoek my kanaal:

myYouTube

myTwitter

myLinkedin

Dankie dat u hierdie instruksies gelees het ^^ en 'n aangename dag. Sien jou. Ahmed Nouira.

Aanbeveel: