Orodha ya maudhui:

Unda Mchezo wako wa Kwanza wa Mashindano: Hatua 10
Unda Mchezo wako wa Kwanza wa Mashindano: Hatua 10

Video: Unda Mchezo wako wa Kwanza wa Mashindano: Hatua 10

Video: Unda Mchezo wako wa Kwanza wa Mashindano: Hatua 10
Video: VIDEO;MREMBO AKIFANYA NA CHUPA YA FANTA 2024, Novemba
Anonim
Image
Image
Picha
Picha

Ikiwa umefanya uandishi wa Python na unataka kuandika mchezo unaweza kuwa na Pygame Zero.

Katika mafunzo haya tutaandika mchezo rahisi wa mbio.

Hatua ya 1: Muhtasari Mpana

Moduli ya Pygame inaongeza kazi nyingi zinazokusaidia kuandika michezo kwenye Python.

Pygame Zero huenda hatua moja zaidi kukuruhusu uruke juu ya mchakato mzito wa kutengeneza vitanzi vyote vya mchezo na kuanzisha muundo wa programu yako.

Pygame Zero ni chaguo nzuri kwa mtu yeyote ambaye anataka kuanza kuandika michezo ya kompyuta kwenye Raspberry Pi au mashine yoyote ya Linux.

Utahitaji:

  • Mashine inayoendesha Linux OS
  • Mhariri wa kuandika mpango wa chatu
  • Kinanda
  • Mawazo fulani

Mafaili:

github.com/AhmNouira/-Racing-Game

Hatua ya 2: Mahitaji

Kwanza nitatumia kompyuta yangu ndogo na Ubuntu 18.04 OS. Kisha tutaendesha mchezo kwenye Raspberry Pi katika hatua ya 8.

Kabla ya kuendelea na mafunzo haya, hakikisha umeingia kama mtumiaji na haki za upendeleo.

Kuweka bomba kwa Python 3

Anza kwa kusasisha orodha ya kifurushi kwa kutumia amri ifuatayo:

sasisho la sudo apt

Tumia amri ifuatayo kusanikisha bomba la Python 3:

Sudo apt kufunga python3-pip

thibitisha usakinishaji kwa kuangalia toleo la bomba:

pip3 - mabadiliko

Kufunga Pygame Zero

pip3 sakinisha pgzero -user

Hii pia itaweka Pygame. Vifurushi vya mapema vya Pygame

Kwa hivyo hatua ya kwanza katika safari yako itakuwa kufungua Python 3 IDLE au mhariri wako wa chatu uipendayo.

Hatua ya 3: "Hello World" katika Pygame Zero

Kwa chaguo-msingi, dirisha la Pygame Zero linafungua kwa saizi ya saizi 800 kwa saizi 600 juu. Unaweza Customize

saizi ya dirisha lako, kuna anuwai mbili zilizopangwa unaweza kuweka, ikiwa unajumuisha WIDTH = 700 HIGH = 800.

Ziwa Pygame hutoa kazi zilizofafanuliwa kushughulikia kitanzi cha mchezo kawaida hufanya:

Chora () Kazi

Tunaweza kuandika kazi hii katika programu yetu sawa na vile tunavyoweza kufafanua kazi katika Python.

Pygame Zero inafuata sheria sawa za uumbizaji kama Python, kwa hivyo utahitaji kutunza kuingiza nambari yako kwa usahihi.

#! / usr / bin / python3 # weka mkalimani

kuagiza pgzrun # kuagiza moduli ya pgzero WIDTH = 700 # upana wa dirisha HEIGHT = 800 # urefu wa def def ya dirisha (): # pygame zero draw screen screen.fill ((128, 128, 128)) # jaza skrini na RGB screen screen.draw.text ("Hello World!", (270, 320), # chora "Hello World!" rangi = (255, 255, 255), fontsize = 40) pgzrun.go ()

Kwanza kabisa unahitaji kuhifadhi faili yako ya programu na kuipatia jina.

Kisha fungua Dirisha la Kituo, nenda kwenye eneo lako la faili na andika:

./.py

Hatua ya 4: Kuchora muigizaji wako

Kuchora muigizaji wako
Kuchora muigizaji wako

Sasa kwa kuwa tumeweka hatua yetu, tunaweza kuunda Waigizaji wetu, ni vitu vyenye nguvu katika Pygame Zero.

Tunaweza kupakia Muigizaji kwa kuandika juu ya programu:

gari = Muigizaji ("mbio ya mbio")

Katika Pygame Zero picha zetu zinahitaji kuhifadhiwa kwenye saraka inayoitwa picha, karibu na faili yetu ya programu. Inaweza kuwa GIF au faili ya JPG, lakini inashauriwa kuwa picha zako ni faili za-p.webp

Unaweza kuweka msimamo wake kwenye skrini kwa kuandika:

gari.pos = 350, 560

Baada ya hapo katika kazi yetu ya kuteka () tunaweza kuchapa

car.draw () # chora gari letu la mbio katika nafasi yake iliyoainishwa

Programu kamili itakuwa kama hii:

#! / usr / bin / chatu3

kuagiza pgzrun WIDTH = 700 # upana wa dirisha HEIGHT = 800 # urefu wa gari la dirisha = Actor ("racecar") car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # jaza skrini na car.draw () pgzrun.go ()

Jaribu programu yako ili kuhakikisha kuwa hii inafanya kazi.

Hatua ya 5: Dhibiti Muigizaji

Dhibiti Muigizaji
Dhibiti Muigizaji

Mara tu tunapokuwa na gari yetu inayochora kwenye skrini, hatua inayofuata ni kuwezesha mchezaji kuihamisha.

Tunaweza kufanya hivyo na waandishi wa habari muhimu. Tunaweza kusoma hali ya funguo hizi ndani ya kazi nyingine iliyofafanuliwa inayoitwa sasisho ().

Sasisho () Kazi

Kazi hii inakaguliwa kila wakati mchezo unaendelea.

Tunahitaji kuandika nambari kadhaa ili kugundua mashinikizo muhimu ya funguo za mshale na pia kufanya kitu juu yake.

Kwa hivyo tutaongeza kazi hii kwenye programu yetu

sasisha ():

ikiwa keyboard. kushoto: car.x - = 2 ikiwa keyboard.kulia: car.x + = 2 ikiwa keyboard.up: car.y - = 2 ikiwa keyboard chini: car.y + = 2

Mistari hii ya nambari itasonga muigizaji wa gari kushoto, kulia, mbele na nyuma.

Hatua ya 6: Kuunda wimbo

Kujenga Track
Kujenga Track

Sasa kwa kuwa tuna gari ambalo tunaweza kuendesha, tunahitaji wimbo wa kuendesha.

Tutaunda wimbo wetu nje ya Watendaji, safu moja kwa wakati. Tutahitaji kutengeneza orodha kadhaa ili kufuatilia Waigizaji tunaowabuni.

Tutahitaji pia kuweka anuwai kadhaa za wimbo.

Basi wacha tufanye kazi mpya iitwayo makeTrack (), Kazi itaongeza mwigizaji mmoja wa track kushoto na moja kulia, wote wakitumia picha bare-p.webp

trackLeft = orodha # ya kuhifadhi baria za kushoto

trackRight = # orodha ya kuhifadhi vizuizi vya kulia trackCount = 0 # hesabu idadi ya barry trackPosition = 350 trackWidth = 150 # upana kati ya barries za kushoto na kulia def makeTrack (): # kazi ya kufanya barrie moja upande wa kushoto na kulia trackCount, trackLft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount + = 1

Jambo linalofuata tunalohitaji kufanya ni kusogeza sehemu za kufuatilia skrini kwa gari.

Wacha tuandike kazi mpya inayoitwa updateTrack (), Kazi hii inasasisha mahali ambapo vizuizi vya wimbo vitaonekana. Vipande vya wimbo vimeundwa na nambari za nasibu kwa hivyo kila mchezo ni tofauti.

trackDriction = Uongo

SPEED = 4 # huweka kasi ya mchezo kutoka kwa randint ya kuagiza bila mpangilio # kuagiza darasa la randint kutoka moduli ya nasibu def updateTrack (): trackCount ya kimataifa, trackPosition, trackDirection, trackWidth, SPEED b = 0 wakati b 32: ikiwa trackDirection == Uongo: trackPosition + = 16 ikiwa trackDirection == Kweli: trackPosition - = 16 ikiwa randint (0, 4) == 1: trackDirection = not trackDirection if trackPosition> 700 - trackWidth: trackDirection = True ikiwa trackPosition < trackWidth: trackDirection = Uongo makeTrack () # tengeneza wimbo mpya juu ya skrini

Tafadhali rejelea faili ya zip hapa chini iitwayo "RaceGameDemo".

Ikiwa tunaendesha nambari yetu kwa wakati huu, tunapaswa kuona wimbo ukianguka kuelekea gari. Shida tu ni kwamba tunaweza kusonga gari juu ya vizuizi vya wimbo na tunataka kuweka gari ndani yao na kugundua mgongano.

Hatua ya 7: Ajali ya gari

Ajali ya gari
Ajali ya gari
Ajali ya gari
Ajali ya gari
Ajali ya gari
Ajali ya gari

Tunahitaji kuhakikisha kuwa gari letu haligusi Waigizaji wa wimbo.

tunaweza kujaribu pia migongano kwa kutumia njia colliderect () katika kazi yetu ya kusasishaTrack ().

Katika mchezo huu tutakuwa na majimbo matatu tofauti kwa mchezo uliohifadhiwa katika hali yetu ya mchezo inayobadilika:

  • mchezoStatus == 0 # mchezo unaendesha
  • mchezoStatus == 1 # ajali ya gari
  • mchezoStatus == 2 # mchezo umekamilika

Tutahitaji kubadilisha kazi yetu ya kuteka () na kazi yetu ya kusasisha () kujibu utofauti wa GameStatus.

Kumaliza kugusa

Tunachohitaji kufanya sasa ni kuonyesha kitu ikiwa GameStatus imewekwa 1 au 2, kwa mfano tunapaswa kuonyesha nyekundu

bendera, ikiwa gari ilianguka. Tunaweza kufanya hivyo kwa nambari iliyo hapa chini:

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

Ili kuona ikiwa gari imefikia kumaliza, tunapaswa kuhesabu ni sehemu ngapi za wimbo zimeundwa na labda labda tukifika 200, weka hali ya mchezo hadi 2. Kisha onyesha bendera ya checkered:

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

Pia tutaonyesha maandishi kwenye skrini kama alama ya sasa ya mchezo.

Angalia orodha kamili ya nambari ili uone jinsi hii yote inafanana.

Hatua ya 8: Endesha Mchezo kwenye Raspberry Pi

Endesha Mchezo kwenye Raspberry Pi
Endesha Mchezo kwenye Raspberry Pi
Endesha Mchezo kwenye Raspberry Pi
Endesha Mchezo kwenye Raspberry Pi

Kwenye Raspberry Pi pgzero imewekwa kwa msingi tangu kutolewa kwa Raspbian Jessie mnamo Septemba 2015.

Sasisha tu Raspberry Pi yako kwa kutumia amri:

Sudo apt-pata sasisho

Nenda kwenye eneo lako la faili na uandike kwenye Kituo.

pgzrun.py

Hatua ya 9: Je! Ulishinda?

Ulishinda?
Ulishinda?

Unaweza kuufanya mchezo uwe rahisi au mgumu kwa kubadilisha ubadilishaji wa trackWidth kufanya wimbo upana tofauti. Unaweza kubadilisha thamani ya SPEED ili kufanya wimbo uende haraka au polepole.

Hatua ya 10: Hitimisho

Pygame Zero ni chaguo nzuri kwa mtu yeyote ambaye anataka kuanza kuandika michezo ya kompyuta.

Ikiwa una swali lolote bila shaka unaweza kuacha maoni Ili kuona zaidi juu ya kazi zangu tafadhali tembelea kituo changu:

myYouTube

mkundu

myLinkedin

Asante kwa kusoma hii inayoweza kufundishwa na uwe na siku njema. Tuonane. Ahmed Nouira.

Ilipendekeza: