Как добавить физическое тело в каждый кадр листа спрайтов?

Допустим, у меня есть лист спрайтов персонажа в игре. Есть 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