Բովանդակություն:

Ստեղծեք ձեր առաջին մրցարշավային խաղը `10 քայլ
Ստեղծեք ձեր առաջին մրցարշավային խաղը `10 քայլ

Video: Ստեղծեք ձեր առաջին մրցարշավային խաղը `10 քայլ

Video: Ստեղծեք ձեր առաջին մրցարշավային խաղը `10 քայլ
Video: Ուենզդեյ - Այս փաստը ձեզ շատ կզարմացնեն | Wednesday | 2024, Նոյեմբեր
Anonim
Image
Image
Պատկեր
Պատկեր

Եթե դուք կատարել եք Python- ի որոշ կոդավորում և ցանկանում եք գրել խաղ, որը կարող է ունենալ Pygame Zero- ում:

Այս ձեռնարկում մենք գրելու ենք մի պարզ մրցարշավային խաղ:

Քայլ 1: Ընդարձակ ակնարկ

Pygame մոդուլը ավելացնում է բազմաթիվ գործառույթներ, որոնք օգնում են ձեզ խաղեր գրել Python- ում:

Pygame Zero- ն մեկ քայլ առաջ է գնում ՝ թույլ տալով ձեզ բաց թողնել այդ բոլոր խաղային օղակները պատրաստելու և ձեր ծրագրի կառուցվածքը կարգավորելու ծանր գործընթացը:

Pygame Zero- ն հիանալի ընտրություն է բոլոր նրանց համար, ովքեր ցանկանում են սկսել համակարգչային խաղեր գրել Raspberry Pi- ով կամ Linux- ի ցանկացած մեքենայով:

Ձեզ պետք է ՝

  • Linux օպերացիոն համակարգով աշխատող մեքենա
  • Պիտոն ծրագիր գրելու խմբագիր
  • Ստեղնաշար
  • Որոշ երևակայություն

Ֆայլեր:

github.com/AhmNouira/-Racing-Game

Քայլ 2: Նախադրյալներ

Սկզբում ես կօգտագործեմ իմ նոութբուքը Ubuntu 18.04 OS- ով: Այնուհետև խաղը վարելու ենք Raspberry Pi- ով 8 -րդ քայլում:

Այս ձեռնարկը շարունակելուց առաջ համոզվեք, որ մուտք եք գործել որպես sudo արտոնություններ ունեցող օգտվող:

Python 3 -ի համար pip տեղադրելը

Սկսեք ՝ թարմացնելով փաթեթների ցուցակը ՝ օգտագործելով հետևյալ հրամանը.

sudo apt թարմացում

Python 3 -ի համար pip- ը տեղադրելու համար օգտագործեք հետևյալ հրամանը.

sudo apt տեղադրեք python3-pip

հաստատեք տեղադրումը `ստուգելով pip տարբերակը.

pip3 -շեղում

Pygame Zero- ի տեղադրում

pip3 տեղադրել pgzero -օգտագործող

Սա նաև կտեղադրի Pygame- ը: Նախապես կազմված Pygame փաթեթներ

Այսպիսով, ձեր ճանապարհորդության առաջին քայլը կլինի բացել Python 3 IDLE- ը կամ ձեր սիրած python խմբագիրը:

Քայլ 3. «Բարև աշխարհ» Pygame Zero- ում

Լռելյայն, Pygame Zero պատուհանը բացվում է 800 պիքսել լայնությամբ և 600 պիքսել բարձրությամբ: Դուք կարող եք հարմարեցնել

ձեր պատուհանի չափը, կան երկու գերակշռող փոփոխականներ, որոնք կարող եք սահմանել, եթե ներառեք WIDTH = 700 HIGH = 800:

Pygame zero- ն ապահովում է կանխորոշված գործառույթներ, որոնք սովորաբար կատարում են խաղի հանգույցը.

Ոչ ոքի () գործառույթը

Մենք կարող ենք այս գործառույթը գրել մեր ծրագրում այնպես, ինչպես սովորաբար կսահմանեինք գործառույթ Python- ում:

Pygame Zero- ն հետևում է նույն ձևաչափման կանոններին, ինչ Python- ը, այնպես որ ձեզ հարկավոր է հոգ տանել ձեր ծածկագրի ճիշտ անկման մասին:

#!/usr/bin/python3 # սահմանել թարգմանիչը

ներմուծել pgzrun # ներմուծել pgzero մոդուլ WIDTH = 700 # պատուհանի լայնություն HEIGHT = 800 # բարձրություն պատուհանի def draw (): # pygame զրոյական գծագրման գործառույթի էկրան: լրացնել ((128, 128, 128)) # լրացնել էկրանը RGB- ով գունավոր screen.draw.text («Ողջույն աշխարհ», (270, 320), # նկարել «Բարև աշխարհ», գույն = (255, 255, 255), տառատեսակի չափ = 40) pgzrun.go ()

Նախևառաջ անհրաժեշտ է պահպանել ձեր ծրագրի ֆայլը և տալ այն անուն:

Այնուհետև բացեք տերմինալի պատուհան, գնացեք ձեր ֆայլի գտնվելու վայրը և մուտքագրեք.

./.py

Քայլ 4: Նկարեք ձեր դերասանին

Նկարեք ձեր դերասանին
Նկարեք ձեր դերասանին

Այժմ, երբ մենք ունենք մեր բեմական հավաքածուն, մենք կարող ենք ստեղծել մեր Դերասաններին, նրանք Pygame Zero- ի դինամիկ օբյեկտներ են:

Մենք կարող ենք բեռնել դերասան ՝ մուտքագրելով ծրագրի վերևում.

մեքենա = դերասան («մրցավազք»)

Pygame Zero- ում մեր պատկերները պետք է պահվեն պատկերներ կոչվող գրացուցակում ՝ մեր ծրագրի ֆայլի կողքին: Այսպիսով, մեր դերասանը պատկերների ֆայլ կփնտրեր racecar.png կոչվող պատկերների պանակում: Դա կարող է լինել GIF կամ-j.webp

Դուք կարող եք սահմանել դրա դիրքը էկրանին ՝ մուտքագրելով.

car.pos = 350, 560

Դրանից հետո մեր draw () գործառույթում մենք կարող ենք մուտքագրել

car.draw () # նկարեք մեր մրցարշավային մեքենան իր սահմանված դիրքում

Ամբողջական ծրագիրը կլինի այսպիսին.

#!/usr/bin/python3

ներմուծել pgzrun WIDTH = 700 # պատուհանի լայնությունը HEIGHT = 800 # բարձրությունը պատուհանի մեքենայի = Դերասան («մրցարշավի մեքենա») car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # էկրանը լցրեք car.draw () pgzrun.go ()

Փորձարկեք ձեր ծրագիրը `համոզվելու համար, որ այն աշխատում է:

Քայլ 5: Վերահսկեք դերասանին

Վերահսկեք դերասանին
Վերահսկեք դերասանին

Երբ մեքենան նկարում ենք էկրանին, հաջորդ փուլը հնարավորություն է տալիս նվագարկիչին այն տեղափոխել:

Մենք կարող ենք դա անել առանցքային սեղմումներով: Մենք կարող ենք կարդալ այս բանալիների վիճակը մեկ այլ կանխորոշված գործառույթի ներսում, որը կոչվում է թարմացում ():

Թարմացում () գործառույթը

Այս գործառույթը շարունակաբար ստուգվում է, երբ խաղը աշխատում է:

Մենք պետք է ինչ -որ կոդ գրենք ՝ սլաքների ստեղների հիմնական սեղմումները հայտնաբերելու և դրա վերաբերյալ ինչ -որ բան անելու համար:

Այսպիսով, մենք այս գործառույթը կավելացնենք մեր ծրագրին

def թարմացում ():

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

Կոդի այս տողերը մեքենայի դերասանին կտեղափոխեն ձախ, աջ, առաջ և հետ:

Քայլ 6. Հետքի կառուցում

Շավիղ կառուցելը
Շավիղ կառուցելը

Այժմ, երբ մենք ունենք մի մեքենա, որը կարող ենք ուղղորդել, մեզ անհրաժեշտ է այն ուղի, որով նա կարող է քշել:

Մենք պատրաստվում ենք կառուցել մեր ուղին դերասաններից ՝ մեկ շարքով: Մենք պետք է որոշ ցուցակներ կազմենք ՝ մեր ստեղծած Դերասաններին հետևելու համար:

Մենք նաև պետք է մի քանի փոփոխական ստեղծենք ուղու համար:

Այնուհետև եկեք կատարենք makeTrack () կոչվող նոր գործառույթ: Ֆունկցիան կավելացնի մեկ երգի դերասան ձախ և մեկ աջ ՝ երկուսն էլ օգտագործելով bare-p.webp

trackLeft = # ցանկ ՝ ձախ շերտերը պահելու համար

trackRight = # ցուցակ ՝ աջ ձողերը պահելու համար trackCount = 0 # հաշվել արգելքների թիվը trackPosition = 350 trackWidth = 150 # լայնություն ձախ և աջ պատնեշների միջև def makeTrack ()., trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Դերասան («մերկ», pos = (trackPosition-trackWidth, 0))) trackRight.append (Դերասան («մերկ», pos = (trackPosition + trackWidth, 0))) trackCount += 1

Հաջորդ բանը, որ մենք պետք է անենք, այն է, որ հետագծի հատվածները էկրանից ներքև շարժենք դեպի մեքենան:

Եկեք գրենք նոր գործառույթ, որը կոչվում է updateTrack (): Այս գործառույթը թարմացվում է, որտեղ կհայտնվեն հետքերի բլոկները: Հետքերի կտորները ստեղծվում են պատահական թվերով, այնպես որ յուրաքանչյուր խաղ տարբերվում է:

trackDriction = Կեղծ

SPEED = 4 # սահմանում է խաղի արագությունը պատահական ներմուծումից randint # ներմուծել պատահական դասը պատահական մոդուլից def updateTrack (). 32: trackWidth: trackDirection = False makeTrack () # ստեղծեք նոր հետք էկրանի վերևում

Խնդրում ենք անդրադառնալ ստորև նշված «RaceGameDemo» անունով zip ֆայլին:

Եթե այս պահին գործարկենք մեր ծածկագիրը, ապա պետք է տեսնենք, որ մի հետք նետվում է դեպի մեքենան: Միակ խնդիրն այն է, որ մենք կարող ենք մեքենան տեղափոխել ուղու արգելապատնեշների վրայով և ցանկանում ենք մեքենան պահել դրանց ներսում ՝ բախումների որոշ հայտնաբերմամբ:

Քայլ 7: Ավտովթար

Ավտովթար
Ավտովթար
Ավտովթար
Ավտովթար
Ավտովթար
Ավտովթար

Մենք պետք է համոզվենք, որ մեր մեքենան չի շոշափում դերասանների ուղին:

մենք կարող ենք նաև բախումների փորձարկում կատարել ՝ օգտագործելով updateTrack () ֆունկցիայի colliderect () մեթոդը:

Այս խաղում մենք կունենանք երեք տարբեր վիճակներ, որոնք պահվում են մեր խաղի փոփոխական կարգավիճակում:

  • gameStatus == 0 # խաղն աշխատում է
  • gameStatus == 1 # ավտովթար
  • gameStatus == 2 # խաղն ավարտվեց

GameStatus փոփոխականին արձագանքելու համար մենք պետք է փոխենք մեր draw () գործառույթը և մեր update () գործառույթը:

Վերջնական շոշափումներ

Մեզ մնում է միայն ինչ -որ բան ցուցադրել, եթե gameStatus- ը 1 կամ 2 է, օրինակ ՝ կարմիր

դրոշ, եթե մեքենան վթարի է ենթարկվել: Մենք կարող ենք դա անել ստորև նշված կոդի միջոցով.

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

Որպեսզի տեսնենք, թե արդյոք մեքենան հասել է ավարտին, պետք է հաշվել, թե քանի հատված է ստեղծվել, իսկ հետո, գուցե, երբ հասնենք 200 -ի, gameStatus- ը սահմանենք 2 -ի: Այնուհետև ցուցադրեք վանդակավոր դրոշը.

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

Մենք նաև մի քանի տեքստ կցուցադրենք էկրանին, ինչպես խաղի ընթացիկ հաշիվը:

Նայեք կոդերի ամբողջական ցանկին ՝ տեսնելու, թե ինչպես է այս ամենը համընկնում:

Քայլ 8. Գործարկեք խաղը Raspberry Pi- ի վրա

Գործարկեք խաղը Raspberry Pi- ի վրա
Գործարկեք խաղը Raspberry Pi- ի վրա
Գործարկեք խաղը Raspberry Pi- ի վրա
Գործարկեք խաղը Raspberry Pi- ի վրա

Raspberry Pi- ի վրա pgzero- ն լռելյայն տեղադրվել է 2015 -ի սեպտեմբերին Raspbian Jessie- ի թողարկումից ի վեր:

Պարզապես թարմացրեք ձեր Raspberry Pi- ն ՝ օգտագործելով հրամանը.

sudo apt-get թարմացում

Գնացեք ձեր ֆայլի գտնվելու վայրը և մուտքագրեք տերմինալը:

pgzrun.py

Քայլ 9: Հաղթեցի՞ք:

Հաղթեցի՞ք
Հաղթեցի՞ք

Դուք կարող եք ավելի հեշտ կամ դժվար դարձնել խաղը ՝ փոխելով trackWidth փոփոխականը ՝ հետքն այլ լայնություն դարձնելու համար: Կարող եք փոխել SPEED- ի արժեքը `հետքն ավելի արագ կամ դանդաղ դարձնելու համար:

Քայլ 10: Եզրակացություն

Pygame Zero- ն հիանալի ընտրություն է բոլոր նրանց համար, ովքեր ցանկանում են սկսել գրել համակարգչային խաղեր:

Եթե ունեք որևէ հարց, իհարկե, կարող եք թողնել մեկնաբանություն: Իմ աշխատանքների մասին ավելին տեսնելու համար այցելեք իմ ալիք ՝

myYouTube

myTwitter

myLinkedin

Շնորհակալություն այս ուսանելի ^^ ը կարդալու համար և հաճելի օր: Կտեսնվենք. Ահմեդ Նուիրա.

Խորհուրդ ենք տալիս: