Как да добавите физическо тяло към всеки кадър на спрайт лист?

Да кажем, че имам Sprite Sheet на герой в игра. Има 4 кадъра, на които той върви в правилната посока, като формата му се променя във всеки кадър. Как да дефинирам формата за всеки отделен кадър, когато добавя физическо тяло към този спрайт?

Имам впечатлението, че трябва да разделя листа със спрайтове на отделни изображения и да дефинирам формата за всяко изображение, но ако това е така, не знам какво да правя оттам нататък по отношение на програмирането.


person Newww2This    schedule 15.07.2014    source източник


Отговори (2)


Не можете да имате различни физически тела за всеки кадър на спрайт. Можете да опитате да го доближите за повечето рамки. Ако решите да отидете по маршрута на отделен кадър, ще трябва да напишете своя собствена анимационна функция, за да анимирате спрайтовете.

person Rob Miracle    schedule 20.07.2014

Моля, не се опитвайте да го правите. Това напълно ще убие вашата физическа симулация.

Проблемът с него е, че масата на фигура се изчислява от нейната площ. Ако имате анимация на персонаж - напр. ходене, люлеене на своите - той наддава на тегло, когато ръцете са изпънати и отслабва, когато ръцете са до тялото.

Опитайте се да не бъдете твърде точни относно формите на сблъсък - играчът обикновено няма да види разликата така или иначе. Просто го направете достатъчно добър.

Една от възможностите е да приближите формата, като използвате обединение или пресичане на вашите рамки за анимация.

Разгледайте този урок - той е за cocos2d - но разделът за създаване на физична форма е основно същият за corona.

http://www.raywenderlich.com/33525/how-to-build-a-monkey-jump-game-using-cocos2d-2-x-physicseditor-texturepacker-part-1

Близо до центъра има по-подробно обяснение как да създадете форми на сблъсък за анимации.

person Andreas Löw    schedule 27.01.2016