ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 74
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Кейіпкерлерді анимациялау
мақсаты
Кейіпкер қозғалысын программалау
Пернетақтадан кейіпкерлерді басқару
Pygame-де ойын терезесін дайындауды, ойынның артқы фонын, ойынның кейіпкерлерін кірістіруді үйрендік. Енді ойындағы ең басты мәселе – кейіпкерлерді қозғалту әдістерімен танысайық
Анимация (Animation) – ол қозғалыстың әртүрлі кезеңіне сәйкес кескіндер тізбегін экранда жылдамдата көрсету арқылы дене қозғалысы динамикасын бейнелеу тәсілі
Компьютерлік анимация дегенді графикалық пиксельдердің бір орыннан нкінші орынға орын ауыстыруы деп түсіну керек
- программа кодына кейіпкерді кіргіземіз; - кейіпкердің экрандағы өлшемін көрсетеміз; - оның бастапқы тұратын орнының координатсын жазамыз; - экранды жаңартамыз; - алдыңғы суретті өшіреміз; - цикл қадамы арқылы келесі орынға кейіпкерді саламыз; - келтірілген кезеңдер цикл шарты біткенше орындалады.
Анимация жасау алгоритмі:
import pygame
pygame.init()
screen = pygame.display.set_mode([640,480])
pygame.display.set_caption('assa')
screen.fill([255, 255, 255]) #(экранды ақ тұске бояды)
avto = pygame.image.load("avto.png") #(кейіпкерді жүктейді)
avto = pygame.transform.scale(avto,(100,80))
x=160 # кейіпкердің бастапқы орнының координатасы
WW=(250,250,250)
clock = pygame.time.Clock()
screen.blit(avto, [x, 50]);pygame.display.flip()
pygame.time.delay(1000)
#1-ші автокөлік тұрған орынды ақ түспен баяйды
pygame.display.flip()
running = True
while running: # ойын циклі
for event in pygame.event.get():
if event.type == pygame.QUIT:exit()
x+=10
screen.fill([255, 255, 255]) # экранды ақ түске бояу арқылы тазалау
screen.blit(avto, [x, 50]);pygame.display.flip() # кейіпкердің жаңа орнын көрсетеді )
pygame.display.update()
clock.tick(60)
Кейіпкердің өлшемін өзгерту
уақытты бақылауға көмектесетін объект жасау
Секундына
60 кадрға дейін шектеу
clock = pygame.time.Clock() - жолын қолдана отырып,
Clock класының бағдарламасына нысанды қосуға болады: timer
Бұл команда Clock объектісімен байланысты таймер айнымалысын жасайды. Бұл бізге ойын циклі бойынша, кейіпкердің әр қозғалысынан кейін үзіліс жасауға және секундына белгіленген кадр санын көрсету үшін қажет болатын уақытты күтуге мүмкіндік береді.
clock.tick(60) – жолы кадр жиілігін секундына
60 кадрға дейін ұстап тұрады.
Кадр жиілігі, яғни экранды жаңарты жиілігі
Тапсырма 1.
Кейіпкерді анимациялау үшін қолданылатын негізгі командалардың кестесін толтырыңыз.
№ | Команда коды | Орындалатын әрекет |
Дескриптор Білім алушы
- суретті жүктеу үшін кодты жазады;
- экранда кейіпкерді /спрайтты/ шығару үшін кодты жазады;
- Спрайт өлшемін өзгерту үшін кодты жазады;
Компьютермен жұмыс
Программаны компьютерде орындамай-ақ, төмендегі тапсырманы орында. /Программа кодының үзіндісін көрсету жеткілікті/
- Фон түсін өзгерт.
- Кейіпкерді кері бағытқа жүргіз
import pygame
pygame.init()
screen = pygame.display.set_mode([640,480])
pygame.display.set_caption('assa')
screen.fill([255, 255, 255]) #(экранды ақ тұске бояды)
avto = pygame.image.load("avto.png") #(кейіпкерді жүктейді)
avto = pygame.transform.scale(avto,(100,80))
x=160 # кейіпкердің бастапқы орнының координатасы
WW=(250,250,250)
clock = pygame.time.Clock()
screen.blit(avto, [x, 50]);pygame.display.flip()
pygame.time.delay(1000)
pygame.display.flip()
running = True
while running: # ойын циклі
for event in pygame.event.get():
if event.type == pygame.QUIT:exit()
x+=10
screen.fill([255, 255, 255]) # экранды ақ түске бояу арқылы тазалау
screen.blit(avto, [x, 50]);pygame.display.flip()
pygame.display.update()
clock.tick(60)
Үй жұмысы
1. Тапсырма. Сұрақтарға жауап беріңдер
1. Компьютерлік анимация дегеніміз не? 2. Pygame-де кейіпкерді қалай қозғалтады? Түсіндір. 3. pygame.time.delay фунциясының қызметі не? 4. Қазақстанда түсірілген қандай анимациялық мултьфильмдерді білесің? 5. Ойын терезесінде кейіпкерлерді өшірудің мақсаты қандай? Өшіру командасы қалай жұмыс істейді?
2. Тапсырма. Сынып жұмысындағы програма кодының кейіпкерін өзгертіп көріңдер