Развијте импресивно окружење играња за своје Годот игре са задивљујућим анимацијама.

У развоју игара, анимације играју кључну улогу у стварању занимљивог и импресивног искуства за играче. Додавање 2Д анимација вашој игри Годот може да оживи ваше ликове и окружења, чинећи их визуелно привлачнијим и интерактивнијим.

На срећу, Годот пружа моћне алате и функције за лако креирање и контролу 2Д анимација.

Подешавање игре Годо

За почетак, поставите основну 2Д сцену игре мотор игре Годот. Направите нову сцену и додајте а КинематицБоди2Д чвор као лик играча. Унутар КинематицБоди2Д, додати а ЦоллисионСхапе2Д са обликом правоугаоника који представља границе судара играча.

Код који се користи у овом чланку доступан је у овом ГитХуб спремиште и бесплатан је за коришћење под МИТ лиценцом.

Поред тога, додајте ан АниматедСприте чвор за руковање анимацијама играча. Штавише, уверите се да сте мапирали следеће радње уноса у свој Инпут Мап:

Затим напишите ГДСцрипт код за контролу кретања играча. Приложите следећу скрипту КинематицБоди2Д чвор:

instagram viewer
 проширује КинематицБоди2Дцонст СПЕЕД = 200фунц _пхисицс_процесс (делта): вар велоцити = Вецтор2.ЗЕРО иф Инпут.ис_ацтион_прессед("мове_лефт"): велоцити.к -= СПЕЕД ако Инпут.ис_ацтион_прессед("мове_ригхт"): велоцити.к += БРЗИНА ако Инпут.ис_ацтион_прессед("мове_уп"): велоцити.и -= БРЗИНА ако је Инпут.ис_ацтион_прессед("мове_довн"): велоцити.и += СПЕЕД брзина = мове_анд_слиде (брзина)

Ова скрипта поставља константну брзину за играча и омогућава му да се креће лево, десно, горе и доле користећи тастере са стрелицама или ВАСД.

Додавање СпритеСхеет-а у АниматедСприте

Сада, конфигуришите АниматедСприте да користите табелу сприте-а за анимације. Изаберите АниматедСприте чвор и идите на Оквири одељак на картици својстава чвора. Овде кликните на Нев СпритеФрамес дугме.

Пребаците се на СпритеФрамес картицу која се налази на дну уређивача Годот. У СпритеФрамес картицу, кликните на Нова анимација дугме. Креирајте анимације као нпр ходати и неактиван додавањем одговарајућих оквира свакој анимацији.

Поред тога, имате опцију да креирате друге анимације, као што су пуцање, скакање и пењање за платформер игру. Након тога, кликните на Додајте оквире из СпритеСхеет-а дугме за аутоматско издвајање појединачних оквира из листа спријтова.

Контролисање анимација помоћу ГДСцрипт-а

Сада када сте поставили своје анимације, можете их програмски контролисати користећи ГДСцрипт.

Репродукција и заустављање анимације

Контролисање репродукције анимација је од суштинског значаја за пружање динамичног и интерактивног искуства у вашој игри. Тхе АниматедСприте чвор у Годоту нуди методе за играње и заустављање анимација према логици ваше игре.

Проширите КинематицБоди2Д чвор и управљати контролом анимације унутар _пхисицс_процесс функција. Можете користити плаи_аниматион и стоп_аниматион улазе за покретање одговарајућих радњи анимације.

 проширује КинематицБоди2Дфунц _пхисицс_процесс (делта): # Пусти анимацију ако је Инпут.ис_ацтион_јуст_прессед("плаи_аниматион"): $АниматедСприте.плаи() # Зауставите анимацију и вратите се на први кадар ако Инпут.ис_ацтион_јуст_прессед("стоп_аниматион"): $АниматедСприте.стоп() $АниматедСприте.фраме = 0

Мапирањем одговарајућих улазних радњи, можете да пружите играчима контролу над репродукцијом анимације у вашој игри.

На пример, можете да повежете плаи_аниматион радња на притисак на дугме или одређени догађај у вашој игри, омогућавајући играчу да покрене секвенцу анимације у жељеном тренутку. Поред тога, можете пронађите музику без ауторских права да се игра док је анимација у току.

Слично томе, можете покренути стоп_аниматион акције за потпуно заустављање анимације.

Укључујући ове механизме контроле анимације, можете додати дубину и интерактивност анимацијама ваше игре, стварајући занимљивија и импресивнија искуства за ваше играче.

Ротирање анимације

Ротирање анимације може додати визуелни интерес и разноликост вашој игри. Можете програмски ротирати АниматедСприте чвор за промену оријентације анимације. Можете применити ротацију у степенима помоћу ротирати() методом.

 проширује КинематицБоди2Дфунц _пхисицс_процесс (делта): иф Инпут.ис_ацтион_јуст_прессед("ротате_аниматион"): # Ротирајте анимацију за 45 степени у смеру казаљке на сату $АниматедСприте.ротате (дег2рад (45))

Када притиснете дугмад повезана са ротате_аниматион (можете дефинисати ову радњу у вашој улазној мапи), тхе ротирати() метода се позива на АниматедСприте чвор. Ротира чвор за 45 степени у смеру казаљке на сату користећи дег2рад() да претворите степене у радијане.

Имајте на уму да ће применити ротацију на целину АниматедСприте чвор, укључујући све оквире анимације. Стога, ако желите да ротирате само одређене оквире, можда ћете морати да их поделите у засебне АниматедСприте чворове или користити друге технике као што је окретање појединачних оквира.

Пребацивање анимације

Окретање анимације хоризонтално или вертикално може бити корисно за одраз промена у правцу карактера. У Годоу, тхе АниматедСприте чвор пружа својства за контролу окретања.

Да бисте окренули анимацију хоризонтално, подесите флип_х власништво тхе АниматедСприте до истина. Ово ће пресликати анимацију дуж хоризонталне осе. Слично томе, постављање флип_в власништво до истина ће пресликати анимацију дуж вертикалне осе.

 проширује КинематицБоди2Дфунц _пхисицс_процесс (делта): ако Инпут.ис_ацтион_јуст_прессед("флип_аниматион"): $АниматедСприте.флип_х = труе # или $АниматедСприте.флип_в = труе за вертикално окретање

Ако играч притисне флип_аниматион радњу уноса, а затим подесите флип_х власништво тхе АниматедСприте до истина. Ово ће окренути анимацију хоризонтално.

Коришћење сигнала у АниматедСприте-у

Поред програмске контроле анимација, Годот обезбеђује моћан систем догађаја који се зове сигнали. Сигнали вам омогућавају да одговорите на специфичне догађаје или промене које се дешавају током извођења ваше игре.

У случају АниматедСприте, постоје два важна сигнала која можете користити: аниматион_финисхед() и фраме_цхангед().

1. аниматион_финисхед() Сигнал

Тхе аниматион_финисхед() сигнал се емитује када анимација достигне последњи кадар, било током једне репродукције или када се понавља. Овај сигнал је користан када желите да извршите радње или покренете догађаје када се анимација заврши.

 проширује КинематицБоди2Дфунц _реади(): $АниматедСприте.цоннецт("аниматион_финисхед", селф, "_он_аниматион_финисхед")фунц _он_аниматион_финисхед(): # Извршите радње или покрените догађаје принт("Анимација завршено!") # Додатни код овде...

Повежите аниматион_финисхед() сигнал за АниматедСприте до _он_аниматион_финисхед() метод у истој скрипти користећи повезати() функција.

Када се анимација заврши, можете извршити прилагођену логику или покренути друге функције помоћу _он_аниматион_финисхед() методом.

2. фраме_цхангед() Сигнал

Тхе фраме_цхангед() сигнал се емитује кад год се промени тренутни кадар анимације. Ово се може десити када се анимација репродукује или када програмски измените оквир. Можете користити овај сигнал да откријете промене оквира и реагујете у складу са тим.

 проширује КинематицБоди2Дфунц _реади(): $АниматедСприте.цоннецт("фраме_цхангед", селф, "_он_фраме_цхангед")фунц _он_фраме_цхангед(): # Извршите радње на основу тренутног оквира вар цуррентФраме = $АниматедСприте.фраме принт("Тренутни оквир: ", цуррентФраме) # Додатни код овде...

Повежите фраме_цхангед() сигнал за АниматедСприте до _он_фраме_цхангед() метод у истом скрипту. Када се оквир промени, можете приступити тренутном оквиру помоћу _он_фраме_цхангед() метод и извршавање радњи или логике на основу вредности оквира.

Користећи сигнале, можете реаговати на догађаје анимације као што су завршетак или промене оквира и укључити динамичка понашања или покренути одређене радње у вашој игри.

Учините Годот игре привлачнијим помоћу анимација

Додавање 2Д анимација вашим Годот играма може у великој мери побољшати целокупно искуство играча. Анимације оживљавају ликове, чинећи њихове покрете и радње визуелно привлачнијим. Укључујући анимације за различите радње као што су ходање, трчање, напад и скакање, можете створити динамично и импресивно окружење за играње.

Штавише, можете користити и анимације да пружите визуелну повратну информацију играчу. Ове повратне информације помажу да се игра учини занимљивијом и одговорнијом, побољшавајући играчев осећај контроле и укључености.