9-сынып. Кейіпкерлерді анимациялау
Скачать 269.04 Kb.
|
Кейіпкерлерді анимациялаумақсаты Кейіпкер қозғалысын программалау Пернетақтадан кейіпкерлерді басқару 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. Тапсырма. Сынып жұмысындағы програма кодының кейіпкерін өзгертіп көріңдер |