Python және Pygame көмегімен компьютерлік ойын жасау
Автор: lazzaty • Декабрь 21, 2021 • Лабораторная работа • 2,461 Слов (10 Страниц) • 948 Просмотры
Python және Pygame көмегімен компьютерлік ойын жасау
Ойындарды бағдарламалауға қысқаша кіріспе
Ойындардағы ең бастысы - экрандағы пиксельдерді жылжыту және шу шығару. Барлық бейне ойындарда бұл элементтер бар. Бұл мақалада біз көптеген желілік бағдарламалауды қажет ететін клиент-сервер және көп ойыншы ойындарын қарастырмаймыз.
Негізгі цикл
Ойынның негізгі циклі (main loop) экранды белгіленген уақыт аралығында орындайды және жаңартады. Олар кадр жиілігі деп аталады және қозғалыс тегістігін анықтайды. Әдетте ойындар экранды секундына 30-60 рет жаңартады. Егер жиілік аз болса, экрандағы Нысандар бұралып жатқан сияқты.
Негізгі циклдің ішінде үш негізгі операция бар: оқиғаларды өңдеу, ойын күйін жаңарту және экранда ағымдағы күйді көрсету.
Оқиғаларды өңдеу
Ойындағы оқиғалар ойын кодын басқарудан тыс барлық нәрселерден тұрады, бірақ ойынның орындалуын білдіреді. Мысалы, егер Breakout-та ойыншы "сол жақ көрсеткі" түймесін басса, онда ойын ракетканы солға жылжытуы керек. Стандартты оқиғалар-пернелерді басу (және басу), тінтуірдің қозғалысы, тінтуірдің батырмаларын басу (әсіресе мәзірде) және таймер оқиғалары (мысалы, арнайы эффекттің әрекеті 10 секундқа созылуы мүмкін).
Күйді жаңарту
Кез — келген ойынның жүрегі-бұл оның жағдайы: экранда қадағалап, сурет салғанның бәрі. Үзіліс жағдайында жағдайға барлық кірпіштің жағдайы, доптың позициясы мен жылдамдығы, ракетканың жағдайы, сондай-ақ өмір мен көзілдірік жатады.
Сондай-ақ, ойынды басқаруға мүмкіндік беретін көмекші күй бар:
Мәзір қазір көрсетіледі ме?
Ойын аяқталды ма?
Ойыншы жеңді ме?
Отрисовка
Ойын сіздің күйіңізді экранда көрсетуі керек, оның ішінде геометриялық фигураларды, суреттер мен мәтінді салу керек.
Ойын физикасы
Көптеген ойындар физикалық ортаны модельдейді. Серпіліс кезінде доп заттардан секіреді және қатты физикалық жүйеге ие (егер бұл мүмкін болса).
Неғұрлым күрделі ойындарда күрделі және нақты физикалық жүйелерді қолдануға болады (әсіресе 3D ойындарында). Сондай-ақ, кейбір ойындарда, мысалы, карточкалық ойындарда физика жоқ және бұл қалыпты жағдай.
AI (жасанды интеллект)
Көптеген ойындарда біз компьютерлік қарсыластармен күресеміз немесе олардың бізді өлтіруге тырысатын жаулары бар. Көбінесе олар ойын әлемінде ақыл-ойы бар сияқты әрекет етеді.
Мысалы, Жаулар ойыншыны қуып жетіп, оның орналасқан жерін біледі. "Серпін". Ойыншы суық және қатты кірпішпен күреседі. Алайда, ойындардағы AI көбінесе өте қарапайым және жалған ақылды нәтижелер беретін қарапайым (немесе күрделі) ережелерді ұстанады.
Дыбысты ойнату
Дыбысты ойнату-бұл ойынның тағы бір маңызды аспектісі. Жалпы, дыбыстың екі түрі бар: фондық музыка және дыбыстық эффектілер. Секцияда мен әр түрлі оқиғаларда ойнатылатын дыбыстық эффектілерді ғана жүзеге асырамын.
Фондық музыка-бұл үнемі фонда ойнайтын музыка. Кейбір ойындарда ол қолданылмайды, ал кейбіреулері әр деңгейде өзгереді.
Өмір, ұпайлар және деңгейлер
Көптеген ойындарда ойыншының белгілі бір өмірі болады және олар аяқталған кезде ойын аяқталады. Сондай-ақ, ойындарда біздің қаншалықты жақсы ойнайтынымызды түсінуге және өзімізді жетілдіруге немесе достарымызға өз жазбаларымызды көрсетуге мүмкіндік беретін ұпайлар жиі кездеседі. Көптеген ойындарда мүлдем өзгеше немесе біртіндеп күрделілікті арттыратын деңгейлер бар.
Pygame танысу
Ойынды іске асырмас бұрын, жұмыстың көп бөлігін өз мойнына алатын Пигми туралы аздап білейік.
Pygame дегеніміз не?
Pygame-бұл ойындарды бағдарламалауға арналған Python тілінің негізі. Ол SDL үстінде жасалған және барлық қажетті заттарға ие:
кемелденген
жақсы қоғамдастық
ашық бастапқы код
кроссплатформенностью
сапалы құжаттамамен
ойындардың көптеген мысалдары
зерттеудің қарапайымдылығы
Pygame Орнату
Жақтауды орнату үшін pygame орнату үшін PIP енгізіңіз. Егер сізге тағы бір нәрсе қажет болса, онда жобаның викиіндегі жұмысты бастау бөліміндегі нұсқауларды орындаңыз. Егер сізде мен сияқты macOS Сьерра болса, онда проблемалар туындауы мүмкін. Мен Pygame-ді еш қиындықсыз орната алдым және код өте жақсы жұмыс істейді, бірақ ойын терезесі ешқашан пайда болмайды.
...