ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 06.12.2023

Просмотров: 373

Скачиваний: 20

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Кейіпкерлерді анимациялау

мақсатыКейіпкер қозғалысын программалауПернетақтадан кейіпкерлерді басқаруPygame-де ойын терезесін дайындауды, ойынның артқы фонын, ойынның кейіпкерлерін кірістіруді үйрендік. Енді ойындағы ең басты мәселе – кейіпкерлерді қозғалту әдістерімен танысайықАнимация (Animation) – ол қозғалыстың әртүрлі кезеңіне сәйкес кескіндер тізбегін экранда жылдамдата көрсету арқылы дене қозғалысы динамикасын бейнелеу тәсіліКомпьютерлік анимация дегенді графикалық пиксельдердің бір орыннан нкінші орынға орын ауыстыруы деп түсіну керек- программа кодына кейіпкерді кіргіземіз; - кейіпкердің экрандағы өлшемін көрсетеміз; - оның бастапқы тұратын орнының координатсын жазамыз; - экранды жаңартамыз; - алдыңғы суретті өшіреміз; - цикл қадамы арқылы келесі орынға кейіпкерді саламыз; - келтірілген кезеңдер цикл шарты біткенше орындалады. Анимация жасау алгоритмі:import pygamepygame.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 = Truewhile 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 pygamepygame.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 = Truewhile 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. Тапсырма. Сынып жұмысындағы програма кодының кейіпкерін өзгертіп көріңдер