ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.11.2023
Просмотров: 207
Скачиваний: 11
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
PyGame (пайгейм) кітапханасы. 1-сабақ
Программалауға қатысты ең қызық бөлім – компьютерлік ойындарды жасау. Программалаумен айналысатын адамдар ерте ме, кеш пе өз ойынын жазуға ниет білдіреді. Ойынның күрделілігі техникалық мүмкіндіктері мен әзірлеушінің шеберлігіне байланысты.
Компьютерлік ойындарды екі түрге бөлуге болады: 2D және 3D.
2D ойынында тек екі қозғалыс өсі қолданылады. Әдетте мұндай ойындарда оңға, солға, жоғары және төмен қозғалуға болады. Мұндай ойындар компьютерлік ресурстарға жоғары талап қоймайды. Бағдарламалауды үйрене бастаған кез келген маманның 2D ойынын жасап, дамыту мүмкіндігі бар.
Python-да ойын жасау PyGame арқылы жүзеге асырылады.
PyGame – ойын жасауға қажетті құралдар жиынтығын қамтитын кітапхана.
PyGame арқылы ойындар мен түрлі мультимедиалық қосымшалар жасауға болады.
PyGame-де пайдалануға болатын негізгі мүмкіндіктер:
-
графиканы кірістіру; -
анимацияны қолдану; -
дыбысты кірістіру; -
басқару құрылғыларын пайдалану (тышқан, пернетақта, геймпад).
PyGame кітапханасы көптеген платформада және әртүрлі операциялық жүйелерде жұмыс істей алады.
Ойынды жасау үшін программалаудың негізгі дағдыларын игеру қажет.
PyGame бағдарламалау тілін орнату пакетімен бірге келмейді, себебі ол стандартты Python кітапханасына кірмейді, ол үшін жеке қондырғы қажет.
Бұл кітапхананың жұмыс істеуі үшін компьютерде Python интерпретаторы қажет. Оның орнатылғанын тексеру үшін мына әрекеттерді орындау керек:
-
«Қосу (Пуск)» мәзіріне cmd деп жазу; -
«Пәрмен жолы (Командная строка)» терезесін таңдау; -
терезеге python пәрменін енгізу; -
CTRL + Z консолінен шығу.
Егер қате туралы хабарлама шықпаса, онда Python интерпретаторы орнатылған.
1-сурет. «Пәрмен жолы (Командная строка)» терезесіндегі интерпретаторды орнату туралы хабарлама көрінісі
PyGame кітапханасын pip пакеттерді басқару жүйесі арқылы орнатуға болады. Бұл жүйе Python-да жазылған программалық жасақтама пакеттерін орнатуға және басқаруға мүмкіндік береді.
pip пакетінің модулін пайдаланып PyGame кітапханасын орнату үшін мына қадамдарды орындау керек:
-
Пәрмен жолына pip install pygame деп жазу. -
Орнатудың аяқталғанын күту.
2-сурет. PyGame кітапханасын орнатқаннан кейінгі «Пәрмен жолы (Командная строка)» терезесі
-
Пәрмен жолына python сөзін жазу. -
Кітапхананы импорттау үшін import pygame пәрменін енгізу.
3-сурет. PyGame кітапханасын импорттағаннан кейінгі «Пәрмен жолы (Командная строка)» терезесі
PyGame кітапханасын сәтті орнатқан соң ойынды жасауға кірісуге болады. Программалау кодын жасамастан бұрын, ойынның идеясын ойластырып, бастапқы кезеңдерін аяқтау керек:
-
Жобаның тақырыбын анықтау. -
Жобаны іске асыру үшін ақпарат жинау. -
Ойынның мақсатын анықтау. -
Ойынның кейіпкерлерін анықтау. -
Ойын ережелерін әзірлеу.
Содан кейін ойын сценарийін дайындауға кірісуге болады.
PyGame (пайгейм) кітапханасы. 2-сабақ
Артқы фон мен ойын кейіпкерлері. 1-сабақ
Әдетте, ойын сюжетіне сәйкес кейіпкерлер белгілі бір фонда қозғалады. pygame.draw модулінің функцияларын қолданып, графикалық примитивтерді салуға мүмкіндік беретін ойынның және басқа элементтердің фонын құруға болады.
Алдыңғы сабақта ойын терезесін құруға арналған шаблон жасалды. Терезенің бетіне объектілерді салу үшін әзірленген шаблонға сәйкес функцияларды қосу керек. Сурет нәтижесін көру үшін display модулінің update() функциясын пайдаланып, терезені жаңарту керек.
Ойын терезесінің шаблон коды
1-сурет
Фигура салуға арналған функцияның стандартты формасы бар:
pygame.draw.функция атауы(аргументтер)
Бірінші міндетті аргумент – фигура салынған беттің атауы. Екінші міндетті аргумент – түс. Әрі қарай әр форманың нақты аргументтері көрсетіледі. Соңғы аргумент сызық қалыңдығы деп аталады.
Түс RGB форматында үш бүтін элементтен тұратын кортеж түрінде жазылады. Мысалы, қызылдың (255, 0, 0) кортежін жазу керек.
RGB моделінде түсті кодтау
2-сурет
rect() функциясы арқылы тіктөртбұрыш салудың бірнеше әдісін қарастырайық.
1-мысал:
pygame.draw.rect (screen, (255, 255, 0), (50, 50, 200, 150), 10)
Ескерту. Бірінші аргумент мәні – терезенің негізгі бетімен байланысқан screen айнымалысы. Екінші аргумент сары түсті білдіреді. Үшінші аргумент – төрт саннан тұратын кортеж. Алғашқы екі сан тіктөртбұрыштың сол жақ жоғары бұрышының координаталарын анықтайды, келесі екі сан оның ені мен ұзындығын көрсетеді. Сызықтың қалыңдығы 10-ға тең.
Нәтижесі:
3-сурет
Егер соңғы аргумент жоқ болса, онда іші боялған тіктөртбұрыш салынады.
2-мысал:
pygame.draw.rect (screen, (255, 255, 0), (50, 50, 200, 150))
Нәтижесі:
4-сурет
Үшінші аргумент ретінде draw.rect() функциясына кортеж емес, Rect класының алдын ала жасалған данасын беруге болады.
3-мысал:
r1 = pygame.Rect(20, 20, 100, 200)
r2 = pygame.Rect(200, 20, 100, 200)
pygame.draw.rect (screen, (255, 255, 255), r1, 5)
pygame.draw.rect (screen, (255, 255, 255), r2)
Нәтижесі:
5-сурет
Кодты жеңілдету үшін әдетте түстер фигураларды салмастан бұрын тұрақты түрде беріледі.
4-мысал:
6-сурет
Нәтижесі:
7-сурет
Кесінді салу үшін ұштарының координаттарын көрсету керек. line() функциясы қарапайым сызық жүргізеді, ал aaline() арқылы тегіс сызық жүргізуге болады.
5-мысал:
8-сурет
Нәтижесі:
9-сурет
polygon() функциясы төбелердің координаттарында анықталатын ерікті көпбұрыш салады. Егер сызық қалыңдығы белгілі болмаса, онда көпбұрыш іші боялады.
6-мысал:
10-сурет
Нәтижесі:
11-сурет
circle() функциясын пайдаланып, шеңбер немесе дөңгелек салуға болады, центрлік координаттар мен шеңбердің радиусы аргумент ретінде көрсетіледі.
7-мысал:
pygame.draw.circle(screen, BLUE,(200, 150), 100, 5)
pygame.draw.circle(screen, YELLOW,(200, 150), 50)
Нәтижесі:
12-сурет
ellipse() функциясы эллипс құруға мүмкіндік береді. Эллипстің қалай орналасқанын оның сыртынан сызылған тікбұрышты аймақ арқылы анықтауға болады.
8-мысал:
pygame.draw.ellipse(screen, GREEN,(10, 50, 300, 100))
pygame.draw.ellipse(screen, GRAY,(350, 50, 100, 200),5)
Нәтижесі:
13-сурет
arc() функциясын қолданып, эллипстің бір бөлігі саналатын доғаны салуға болады. Үшінші аргумент ретінде эллипске сырттай сызылған тікбұрышты аймақ көрсетіледі. Төртінші және бесінші аргументтер – радианмен көрсетілген доғаның басталуы мен аяқталуы. Кері санақ сағат тіліне қарсы оң жақтан басталады.
9-мысал:
14-сурет
Нәтижесі:
15-сурет
Сабақта талқыланған функциялар ойын терезесінің фонына әртүрлі кескіндер жасауға болатын графикалық примитивтерді құруға мүмкіндік береді.
Артқа
Артқы фон мен ойын кейіпкерлері. 2-сабақ
Ойын қаңқасы жасалғаннан кейін кейіпкерлерді жасауға кірісуге болады. pygame-де барлық сызба белгілі бір бетте жасалады. рygame.display.set_mode() әдісімен құрылған бет ойынның басты бет саналады. рygame.Surface класы қосымша беттерді жасауға мүмкіндік береді. pygame-дегі беттер мен графикадағы қабаттардың жұмысы ұқсайды, олар элементтерді топтастыруға мүмкіндік береді.
blit() әдісімен жаңа бетті қосуға болады. Бұл әдісте екі негізгі параметрді көрсету керек:
-
беттің атауы; -
беттің шығуына арналған экрандағы нүктенің координаталары.
Жаңа беттерді құру жолдарын қарастырайық.
1-тапсырма. screen негізгі бетімен берілген ойын шаблоны бар. 400x250 өлшемді new_sc1 жаңа бетін қосу керек. Жаңа беттің фоны сары түсті болуы қажет.
Әрекеттердің реті:
-
pygame.Surface класын қолданып жаңа бетті құру:
new_sc1 = pygame.Surface((400, 250))
-
жаңа беттің фонын сары түске өзгертуге арналған пәрменді енгізу:
new_sc1.fill((255, 255, 0))
-
жаңа бетті көрсету үшін blit() әдісін қолдану:
screen.blit(new_sc1, (50, 20))
Ескерту. blit() әдісі screen негізгі бетіне қолданылады. Жаңа бет (50,20) нүктесінен сызылады.
Жаңа бетті қосу коды
new_sc1 = pygame.Surface((400, 250))
new_sc1.fill((255, 255, 0))
screen.blit(new_sc1, (50, 20))
Бағдарламаның толық коды (бұрын жасалған шаблонмен бірге)
1-сурет
Нәтижесі:
2-сурет
Ескерту. Бұдан әрі мысалдарда тек белгілі бір код үзінділері қарастырылады. Тексеру үшін ұсынылған үзінділерді ойынның негізгі кодына енгізу керек.
2-тапсырма. Екі жаңа бетті қосу
Код үзіндісі:
new_sc1 = pygame.Surface((400, 250))
new_sc1.fill((255, 255, 0))
screen.blit(new_sc1, (50, 20))
new_sc2 = pygame.Surface((200, 150))
new_sc2.fill((255, 255, 255))
screen.blit(new_sc2, (100, 50))
Нәтижесі:
3-сурет
set_alpha() әдісін қолданып, беттің тұнықтық дәрежесін баптауға болады: 0 – толық тұнық, 255 – толық тұнық емес.
Код үзіндісі:
new_sc1 = pygame.Surface((400, 250))
new_sc1.fill((255, 255, 0))
screen.blit(new_sc1, (50, 20))
new_sc2 = pygame.Surface((200, 150))
new_sc2.fill((255, 255, 255))
new_sc2.set_alpha(200)
screen.blit(new_sc2, (100, 50))
Нәтижесі:
4-сурет
Қосымша беттерге әртүрлі графикалық объектілерді салуға болады. PyGame pygame.image модулінің load() функциясын пайдаланып, дайын кескіндерді жүктеу мүмкіндігін ұсынады. Бұл функцияда файл атауы мен кеңейтімін көрсету керек. PyGame-дегі стандартты пішім – BMP, бірақ графикалық файлдардың басқа түрлерін қолдануға болады. Мысалы: JPG, PNG, GIF. Кескін файлы ойын кодымен бір бумада сақталуы керек. Егер файл басқа бумада орналасқан болса, онда файлдың толық жолы load() функциясында көрсетілуі керек.
3-тапсырма.