Բովանդակություն:
- Քայլ 1: Ընդարձակ ակնարկ
- Քայլ 2: Նախադրյալներ
- Քայլ 3. «Բարև աշխարհ» Pygame Zero- ում
- Քայլ 4: Նկարեք ձեր դերասանին
- Քայլ 5: Վերահսկեք դերասանին
- Քայլ 6. Հետքի կառուցում
- Քայլ 7: Ավտովթար
- Քայլ 8. Գործարկեք խաղը Raspberry Pi- ի վրա
- Քայլ 9: Հաղթեցի՞ք:
- Քայլ 10: Եզրակացություն
Video: Ստեղծեք ձեր առաջին մրցարշավային խաղը `10 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Եթե դուք կատարել եք 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 ().
Խնդրում ենք անդրադառնալ ստորև նշված «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- ի վրա pgzero- ն լռելյայն տեղադրվել է 2015 -ի սեպտեմբերին Raspbian Jessie- ի թողարկումից ի վեր:
Պարզապես թարմացրեք ձեր Raspberry Pi- ն ՝ օգտագործելով հրամանը.
sudo apt-get թարմացում
Գնացեք ձեր ֆայլի գտնվելու վայրը և մուտքագրեք տերմինալը:
pgzrun.py
Քայլ 9: Հաղթեցի՞ք:
Դուք կարող եք ավելի հեշտ կամ դժվար դարձնել խաղը ՝ փոխելով trackWidth փոփոխականը ՝ հետքն այլ լայնություն դարձնելու համար: Կարող եք փոխել SPEED- ի արժեքը `հետքն ավելի արագ կամ դանդաղ դարձնելու համար:
Քայլ 10: Եզրակացություն
Pygame Zero- ն հիանալի ընտրություն է բոլոր նրանց համար, ովքեր ցանկանում են սկսել գրել համակարգչային խաղեր:
Եթե ունեք որևէ հարց, իհարկե, կարող եք թողնել մեկնաբանություն: Իմ աշխատանքների մասին ավելին տեսնելու համար այցելեք իմ ալիք ՝
myYouTube
myTwitter
myLinkedin
Շնորհակալություն այս ուսանելի ^^ ը կարդալու համար և հաճելի օր: Կտեսնվենք. Ահմեդ Նուիրա.
Խորհուրդ ենք տալիս:
Ստեղծեք ձեր սեփական 1D պոնգ խաղը. 5 քայլ (նկարներով)
Ստեղծեք ձեր սեփական 1D պոնգ խաղը: Այս նախագծի համար ես ձեզ ցույց կտամ, թե ինչպես եմ համատեղել MDF- ի տախտակը `ազդանշանային կոճակներով, LED- ներով և Arduino Nano- ով, որպեսզի ստեղծեմ 1D պոնգ խաղ, որն իսկապես զվարճալի է խաղալ: Theանապարհին ես ձեզ ցույց կտամ, թե ինչպես ստեղծել էլեկտրոնիկայի միացում և որքան տարբեր
Ստեղծեք ձեր առաջին կայքը ՝ 10 քայլ
Ստեղծելով ձեր առաջին կայքը. Այս ձեռնարկում դուք կսովորեք կառուցել հիմնական վեբ էջ, որն ունի կապված ոճաթերթ և ինտերակտիվ javascript ֆայլ
Խաղացեք Simon խաղը ձեր շապիկի վրա. 5 քայլ
Խաղա՛ Սիմոնի խաղը քո շապիկի վրա. Դուք միշտ ցանկացե՞լ եք Սիմոնի խաղը խաղալ ձեր շապիկի վրա: Ինձ նույնպես: Այս ուսանելի դասում ես ձեզ ցույց կտամ, թե ինչպես պատրաստել Simon խաղի տարբերակը, որը կարող եք խաղալ ՝ շոշափելով ձեր վերնաշապիկը ՝ օգտագործելով Makey Makey
Ստեղծեք ձեր առաջին ծրագիրը Visual Basic- ում ՝ 7 քայլ
Ստեղծեք ձեր առաջին ծրագիրը Visual Basic- ում. Այս ուսանելի ծրագիրը ցույց կտա ձեզ, թե ինչպես ծրագրավորել Microsoft Visual Basic 2005 Express Edition- ը: Օրինակը, որը դուք կստեղծեք այսօր, պարզ պատկեր դիտողն է: Եթե ձեզ դուր է գալիս այս հրահանգը, սեղմեք հրահանգի վերևում գտնվող + կոճակը: Շնորհակալություն
Ինչպես ստուգել, թե արդյոք խաղը կգործի ձեր համակարգչի վրա, նախքան խաղը գնելը: 4 քայլ
Ինչպես ստուգել, թե արդյոք խաղը կգործի ձեր համակարգչի վրա խաղը գնելուց առաջ. Ես վերջերս ձեռք եմ բերել Call of Duty 4 ընկերոջից (անվճար կարող եմ ավելացնել), քանի որ չի աշխատի նրա համակարգչի վրա: Դե, նրա համակարգիչը բավականին նոր է, և նա ինձ տարակուսեց, թե ինչու չի աշխատի: Այսպիսով, ինտերնետում մի քանի ժամ փնտրելուց հետո ես հանդիպեցի