Мазмұны:
- 1 -қадам: Кең шолу
- 2 -қадам: алғышарттар
- 3 -қадам: Pygame Zero -дағы «Сәлем әлемі»
- 4 -қадам: Актердің суретін салу
- 5 -қадам: Актерді бақылау
- 6 -қадам: жолды құру
- 7 -қадам: көлік апаты
- 8 -қадам: Ойынды Raspberry Pi -де іске қосыңыз
- 9 -қадам: Сіз жеңдіңіз бе?
- 10 -қадам: Қорытынды
Бейне: Бірінші жарыс ойынын жасаңыз: 10 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Егер сіз 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
Төмендегі «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 -де pgzero әдепкі бойынша 2015 жылдың қыркүйегінде Raspbian Jessie шыққаннан бері орнатылған.
Raspberry Pi пәрменін пайдаланып жаңартыңыз:
sudo apt-get жаңартуы
Файлдың орналасқан жеріне өтіп, Терминалға теріңіз.
pgzrun.py
9 -қадам: Сіз жеңдіңіз бе?
Жолды басқа енге айналдыру үшін trackWidth айнымалысын өзгерту арқылы ойынды жеңілдетуге немесе қиындатуға болады. Трек жылдам немесе баяу жүру үшін SPEED мәнін өзгертуге болады.
10 -қадам: Қорытынды
Pygame Zero - бұл компьютерлік ойындар жазғысы келетіндер үшін тамаша таңдау.
Егер сізде сұрақтар туындаса, пікір қалдыра аласыз. Менің туындыларым туралы көбірек білу үшін менің каналыма кіріңіз:
myYouTube
myTwitter
myLinkedin
Бұл нұсқаулықты оқығаныңыз үшін рахмет ^^ және жақсы күн. Көріскенше. Ахмед Нуира.
Ұсынылған:
2 минут ішінде Arduino Simon ойынын жасаңыз!: 3 қадам
2 минут ішінде Arduino Simon ойынын жасаңыз!: Секіргіштер жоқ! Сымдар ЖОҚ! Дәнекерлеу жоқ! Нан тақтасы жоқ! Қораптан тыс ойлау. Достарыңыз немесе туыстарыңыз жолға шықпас бұрын, сіз микроконтроллерді кейбір қосымша қондырғылармен үйлесімді түрде көрсеткіңіз келеді
Өзіңіздің 1D понг ойынын жасаңыз: 5 қадам (суреттермен)
Өзіңіздің 1D понг ойынын жасаңыз: Бұл жоба үшін мен сізге MDD тақтасын дыбыстық сигналдар, светодиодтар мен Arduino Nano көмегімен 1D Pong ойынын жасау үшін қалай үйлестіргенімді көрсетемін. Жолда мен сізге электронды схеманы қалай жасау керектігін және оның айырмашылығын көрсетемін
2D ойынын жасаңыз: 15 қадам
2D ойынын жасаңыз: ойын ойнаудан шаршадыңыз ба? Неліктен сіз ойын жасамайсыз? Бұл нұсқаулық сізге қарапайым 2D ойынын қалай жасау керектігін көрсетеді … Біз Unity Game Engine көмегімен біздің 2D ойынымызды жасаймыз және жасаймыз … сонымен қатар бағдарламалау үшін Microsoft Visual Studio бағдарламасын қолданамыз. Cr
Бит не ойлайды? BBC Microbit көмегімен қарапайым болжау ойынын жасаңыз!: 10 қадам
Бит не ойлайды? BBC Microbit көмегімен қарапайым болжау ойынын жасаңыз!: Мен бірнеше BBC мақалаларындағы оң пікірлерді оқығаннан кейін BBC Microbits жұбын алдым. Битпен танысу үшін мен Microsoft Blocks редакторымен бірге ойнадым. бірнеше сағаттан кейін келді
Жарыс ойынын сызықпен бағдарламалау: 7 қадам
Жарыс ойынын сызықпен бағдарламалау: Бұл оқулық MIT's Scratch ішінде жарыс ойынын қалай бағдарламалау керектігін көрсетеді