Пигаме пројекти којима недостаје анимација могу бити невероватно досадни. Повећајте привлачност својих игара укључивањем задивљујућих анимација.
Анимација је кључни аспект развоја игара који уноси живот и динамику вашим креацијама. Укључујући анимације, можете да креирате задивљујуће визуелне приказе и импресивна искуства играња за своје играче.
Пигаме пружа свеобухватан скуп алата који поједностављује процес креирања анимација. Пружа уграђене функције укључујући учитавање и приказивање оквира, контролу анимација помоћу уноса играча и тако даље.
Направите једноставну игру
Почните креирањем једноставне игре која омогућава играчу да се креће лево и десно. Такође можете додати платформу игри.
Код који се користи у овом чланку доступан је у овом ГитХуб спремиште и бесплатан је за коришћење под МИТ лиценцом.
Креирајте нову датотеку симпле-гаме.пи и дефинише неке варијабле, укључујући почетне позиције и брзине за играча и платформу. Ове варијабле ће се користити за контролу кретања сприте играча.
Управљајте уносом играча тако што ћете преузети стање тастатуре помоћу пигаме.кеи.гет_прессед(). Ако се притисне леви тастер са стрелицом, можете смањити вредност плаиер_к, а ако се притисне десни тастер са стрелицом, можете га повећати. Ово ствара ефекат покрета за дух играча.
Ваша почетна игра би требало да изгледа овако:
Учитавање и приказивање оквира
Да бисте креирали анимације, учитавање и приказивање различитих слика или кадрови анимације. Сваки оквир представља одређену слику или сприте који ће бити приказан у низу да би дао илузију кретања. Претпоставимо да имате три оквира: фраме0, фраме1, и фраме2. У почетку можете приказати фраме0.
Креирајте нову датотеку под називом анимате.пи и додајте код са ажурирањима у наставку:
# Учитај оквире
фраме0 = пигаме. Површина((20, 20))
фраме0.филл((255, 0, 0))фраме1 = пигаме. Површина((20, 20))
фраме1.филл((0, 255, 0))фраме2 = пигаме. Површина((20, 20))
фраме2.филл((0, 0, 255))# Поставите почетни оквир
тренутни_оквир = оквир0# Игра петља
док трчање:
# ...# Рендерирајте игру
# ...
сцреен.блит (тренутни_фраме, (плаиер_к, плаиер_и))пигаме.дисплаи.флип()
# ...
Контролисање анимација помоћу уноса играча
Да бисте анимирали сприте играча, можете се пребацивати између различитих оквира на основу уноса играча. На пример, када се играч помера улево или удесно помоћу тастера са стрелицама, можете итерирати између оквира да бисте створили илузију кретања.
# Игра петља
док трчање:
# ...# Управљајте уносом играча
кључеви = пигаме.кеи.гет_прессед()
ако кључеви [пигаме. К_ЛЕФТ]:
плаиер_к -= плаиер_спеед
тренутни_оквир = оквир1
елиф кључеви [пигаме. К_ДЕСНО]:
плаиер_к += плаиер_спеед
тренутни_оквир = оквир2
друго:
тренутни_оквир = оквир0# Рендерирајте игру
# ...
сцреен.блит (тренутни_фраме, (плаиер_к, плаиер_и))пигаме.дисплаи.флип()
# ...
Испод је излаз:
Укључујући додатне функције
Поред основне функције анимације, Пигаме нуди неколико додатних функција за побољшање вашег искуства у развоју игара.
Сприте Схеетс
Уместо учитавања појединачних оквира, можете користити листове сприте-а који садрже више оквира у једној слици. Пигаме пружа функције за издвајање и приказ специфичних региона сприте листа. Ево примера:
# Учитајте слику листа спријтова
сприте_схеет = пигаме.имаге.лоад("спритесхеет.пнг")# Дефинишите димензије сваког оквира
фраме_видтх = 32
фраме_хеигхт = 32# Функција за издвајање оквира из листа спријтова
дефекстракт_оквири(лист, фраме_видтх, фраме_хеигхт):
# код за издвајање оквира# Извуците оквире из листа са спријтовима
оквири = екстракт_оквирова (сприте_схеет, фраме_видтх, фраме_хеигхт)# Прикажи оквир из листа спријтова
тренутни_оквир = оквири[0]
# Игра петља
док трчање:
# ...
сцреен.блит (тренутни_фраме, (плаиер_к, плаиер_и))
# ...
Брзина анимације
Можете да контролишете брзину својих анимација увођењем временских кашњења између ажурирања кадрова. Ово омогућава глатко и реалистично кретање. Ево примера како можете да контролишете брзину анимације помоћу време модул:
# Променљиве брзине анимације
аниматион_делаи = 100# Кашњење у милисекундама између ажурирања оквира
ласт_фраме_тиме = пигаме.тиме.гет_тицкс()# Игра петља
док трчање:
# ...# Проверите да ли је прошло довољно времена да се оквир ажурира
цуррент_тиме = пигаме.тиме.гет_тицкс()
ако тренутно_време - време_задњег_кадра >= кашњење_анимације:
# Ажурирајте оквир# Рендерирајте игру
# ...
сцреен.блит (тренутни_фраме, (плаиер_к, плаиер_и))
пигаме.дисплаи.флип()
Детекција судара
Пигаме нуди функције детекције колизије за откривање интеракција између анимираних објеката, као што су откривање када се играч судари са платформом. Ево примера како да укључите детекцију судара у своју игру:
# Детекција судара
дефцхецк_цоллисион(плаиер_рецт, платформ_рецт):
ако плаиер_рецт.цоллидерецт (платформ_рецт):
# Дошло је до судара
повратакИстина
друго:
повратакФалсе# Игра петља
док трчање:
# ...# Извршите детекцију судара
плаиер_рецт = пигаме. Рецт (плаиер_к, плаиер_и, 20, 20)
платформ_рецт = пигаме. Рецт (платформ_к, платформ_и,
платформа_видтх, платформ_хеигхт)ако цхецк_цоллисион (плаиер_рецт, платформ_рецт):
# Обради колизију# Рендерирајте игру
# ...
сцреен.блит (тренутни_фраме, (плаиер_к, плаиер_и))
пигаме.дисплаи.флип()
Користећи ове додатне функције, можете проширити своје могућности развоја игара и створити динамичнија и импресивнија искуства играња. Експериментишите са различитим техникама, комбинујте их креативно и пустите машти да вас води у прављењу заиста занимљивих игара.
Најбоље праксе за прављење анимације у Пигаме-у
Када додајете анимацију у своје Пигаме пројекте, важно је да следите неке најбоље праксе да бисте оптимизовали своју имплементацију и обезбедили глатке и ефикасне анимације. Узмите у обзир следеће смернице:
Претходно учитавање и чување оквира у меморији
Учитавање слика са диска током петље игре може изазвати кашњења и утицати на перформансе. Да бисте то избегли, унапред учитајте своје оквире и сачувајте их у меморији пре него што започне циклус игре. На овај начин, можете брзо приступити и приказати оквире током времена рада без икаквих дисковних улазно/излазних трошкова.
Користите Пигаме-ове уграђене класе Сприте и анимације
Пигаме пружа уграђене класе попут пигаме.сприте. Сприте и пигаме.сприте. Група што поједностављује управљање срајтовима и анимацијама. Користећи ове класе, можете ефикасније управљати откривањем колизије, ажурирањем група и приказивањем.
Оптимизујте формате слика
Размислите о оптимизацији формата слика за боље перформансе. Пигаме подржава различите формате слика, укључујући ПНГ и ЈПЕГ. ПНГ се генерално препоручује за слике са транспарентношћу, док је ЈПЕГ погодан за статичне слике без транспарентности.
Експериментишите са различитим форматима слика и нивоима компресије да бисте пронашли оптималну равнотежу између квалитета слике и величине датотеке.
Користите одговарајућу брзину кадрова
Да бисте постигли глатке анимације, важно је да подесите одговарајућу брзину кадрова. Пигаме пружа пигаме.тиме. Сат класе, која помаже у контроли брзине кадрова регулацијом брзине петље игре.
Позивањем на тик () методом објекта Цлоцк на крају сваке итерације, можете одржавати конзистентну брзину кадрова. Подесите брзину кадрова на основу сложености ваших анимација и могућности перформанси ваше циљне платформе.
Пратећи ове најбоље праксе, можете оптимизовати имплементацију анимације, побољшати перформансе својих игара и створити визуелно привлачна и привлачна искуства за своје играче.
Учините игре забавнијим уз анимације
Додавање анимације вашим играма може у великој мери побољшати целокупно искуство играча. Анимације оживљавају ликове и објекте, чинећи покрете глаткијим и привлачнијим. Било да се ради о скакању ликова, нападима непријатеља или интеракцији објеката, анимације чине ваш свет игре привлачнијим и визуелно привлачнијим.
Користећи Пигаме-ове могућности анимације, можете очарати своје играче и креирати игре које остављају трајан утисак.