Мазмұны:

Бірінші жарыс ойынын жасаңыз: 10 қадам
Бірінші жарыс ойынын жасаңыз: 10 қадам

Бейне: Бірінші жарыс ойынын жасаңыз: 10 қадам

Бейне: Бірінші жарыс ойынын жасаңыз: 10 қадам
Бейне: 10 сөз ойыны. Топтық және жұптық ойын әдісі. 2024, Қараша
Anonim
Image
Image
Кескін
Кескін

Егер сіз Python кодтауын жасаған болсаңыз және ойын жазғыңыз келсе, сізде Pygame Zero болуы мүмкін.

Бұл оқулықта біз қарапайым жарыс ойынын жазамыз.

1 -қадам: Кең шолу

Pygame модулі Python -да ойын жазуға көмектесетін көптеген функцияларды қосады.

Pygame Zero сізге ойын ілмектерін жасаудың және бағдарламаның құрылымын орнатудың күрделі процесін өткізіп жіберуге мүмкіндік беретін бір қадам алға жылжиды.

Pygame Zero - компьютерлік ойындарды Raspberry Pi немесе кез келген Linux машинасында жаза бастағысы келетіндер үшін тамаша таңдау.

Сізге қажет:

  • Linux ОЖ жұмыс істейтін машина
  • Python бағдарламасын жазатын редактор
  • Пернетақта
  • Кейбір қиял

Файлдар:

github.com/AhmNouira/-Racing-Game

2 -қадам: алғышарттар

Алдымен мен ноутбукты Ubuntu 18.04 ОЖ -мен қолданамын. Содан кейін біз ойынды Raspberry Pi -де 8 -қадамда жүргіземіз.

Бұл оқулықты жалғастырмас бұрын, sudo артықшылықтары бар пайдаланушы ретінде кіргеніңізге көз жеткізіңіз.

Python 3 үшін пип орнату

Келесі пәрменді пайдаланып пакеттер тізімін жаңартудан бастаңыз:

sudo apt жаңарту

Python 3 үшін pip орнату үшін келесі пәрменді қолданыңыз:

sudo apt install python3-pip

pip нұсқасын тексеру арқылы орнатуды тексеріңіз:

pip3 -версия

Pygame Zero орнату

pip3 pgzero --user орнатыңыз

Бұл сонымен қатар Pygame орнатады. Алдын ала құрастырылған Pygame пакеттері

Сондықтан сіздің сапарыңыздағы бірінші қадам Python 3 IDLE немесе сүйікті питон редакторын ашу болады.

3 -қадам: Pygame Zero -дағы «Сәлем әлемі»

Әдепкі бойынша, Pygame Zero терезесі ені 800 пиксель мен биіктігі 600 пиксель өлшемінде ашылады. Сіз теңшей аласыз

терезенің өлшемі, егер сіз WIDTH = 700 HIGH = 800 қоссаңыз, алдын ала анықталған екі айнымалы бар.

Pygame zero ойынның циклын әдетте орындайтын алдын ала анықталған функцияларды ұсынады:

Draw () функциясы

Біз бұл функцияны бағдарламамызға Python -дағы функцияны қалай анықтасақ, жаза аламыз.

Pygame Zero Python сияқты пішімдеу ережелеріне сәйкес келеді, сондықтан кодты дұрыс шегіну үшін қамқорлық қажет болады.

#!/usr/bin/python3 # аудармашыны орнатыңыз

импорт pgzrun # импорт pgzero модулі WIDTH = 700 # терезенің ені HEIGHT = 800 # терезенің биіктігі def draw (): # pygame zero draw функциясының экраны. толтыру ((128, 128, 128)) # экранды RGB арқылы толтыру түсті экран.draw.text («Сәлем әлем!», (270, 320), # сурет «Сәлем әлемі!» color = (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

import pgzrun WIDTH = 700 # терезенің ені HEIGHT = 800 # терезенің биіктігі = Actor («racecar») car.pos = 350, 560 def draw (): # pygame zero draw функциясының экраны. толтыру ((128, 128, 128)) # экранды car.draw () pgzrun.go () толтырыңыз

Бұл жұмыс істейтініне көз жеткізу үшін бағдарламаны тексеріңіз.

5 -қадам: Актерді бақылау

Актерді бақылау
Актерді бақылау

Бізде көліктің суреті экранға шығарылғаннан кейін, келесі кезең - ойыншыға оны жылжытуға мүмкіндік беру.

Біз мұны пернелердің көмегімен жасай аламыз. Бұл пернелердің күйін update () деп аталатын басқа алдын ала анықталған функцияның ішінен оқи аламыз.

Жаңарту () функциясы

Бұл функция ойын жүріп жатқанда үнемі тексеріледі.

Көрсеткі пернелердің басылуын анықтау үшін, сондай -ақ бұл туралы бірдеңе жасау үшін бізге код жазу керек.

Сондықтан біз бұл функцияны бағдарламамызға қосамыз

def update ():

егер keyboard.left: car.x -= 2 егер keyboard.right: car.x += 2 егер 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 (): # функция сол жақта және оң жақта бір барри жасау үшін жаһандық trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Актер («жалаңаш», pos = (trackPosition-trackWidth, 0))) trackRight.append (Актер («жалаңаш», pos = (trackPosition + trackWidth, 0))) trackCount += 1

Келесі нәрсе - экранның жол бөліктерін көлікке қарай жылжыту.

UpdateTrack () деп аталатын жаңа функция жазайық, бұл функция трек блоктары пайда болатын жерде жаңартылады. Жол бөліктері кездейсоқ сандар арқылы жасалады, сондықтан әр ойнау әр түрлі болады.

trackDriction = жалған

SPEED = 4 # кездейсоқ импорт randint ойынының жылдамдығын орнатады # randint класын кездейсоқ модульден импорттау updateTrack (): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 b 32: if trackDirection == False: trackPirection += 16 if trackDirection == True: trackPosition - = 16 if randint (0, 4) == 1: trackDirection = trackDirection if trackPosition> 700 - trackWidth: trackDirection = егер trackPosition < trackWidth: trackDirection = False makeTrack () # экранның жоғарғы жағында жаңа трек жасау

Төмендегі «RaceGameDemo» деп аталатын zip файлын қараңыз.

Егер біз қазір кодты іске қосатын болсақ, онда біз көлікке қарай жылжып бара жатқан жолды көруіміз керек. Жалғыз мәселе - біз көлікті жол кедергілерінің үстінен жылжыта аламыз және көлікті соқтығысуды анықтай отырып, олардың ішінде ұстағымыз келеді.

7 -қадам: көлік апаты

Жол апаты
Жол апаты
Жол апаты
Жол апаты
Жол апаты
Жол апаты

Біз көлігіміз Актерлер жолына тиіп кетпеуін қадағалауымыз керек.

updateTrack () функциясында colliderect () әдісін қолдана отырып, соқтығысуларды тексере аламыз.

Бұл ойында бізде өзгермелі gameStatus сақталған ойынға үш түрлі күй болады:

  • gameStatus == 0 # ойын жұмыс істейді
  • gameStatus == 1 # көлік апаты
  • gameStatus == 2 # ойын аяқталды

GameStatus айнымалысына жауап беру үшін бізге draw () функциясын және update () функциясын өзгерту қажет болады.

Аяқтау жұмыстары

Бізге қазір тек бір нәрсе көрсету керек, егер gameStatus 1 немесе 2 күйіне орнатылса, мысалы, қызыл түспен көрсету керек.

жалауша, егер көлік апатқа ұшыраса. Біз мұны төмендегі кодпен жасай аламыз:

screen.blit («қызыл жалауша», (230, 230))

Автокөліктің мәреге жеткенін білу үшін біз қанша трек бөлімі жасалғанын санауымыз керек, содан кейін 200 -ге жеткенде gameStatus мәнін 2 -ге орнатыңыз.

screen.blit («мәре жалауы», (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

Бұл нұсқаулықты оқығаныңыз үшін рахмет ^^ және жақсы күн. Көріскенше. Ахмед Нуира.

Ұсынылған: