Ручное обнаружение столкновений в Lua

Итак, я работаю над простым столкновением прямоугольников и прямоугольников для своей игры на Lua. У меня есть алгоритм, который я использовал для других проектов для этого типа столкновения, но он написан на C++, и я знаю, что он работает. Проблема в том, что он использует центр прямоугольника. Хотя легко вычислить, у меня возникают проблемы с удержанием центра, в центре, когда спрайт движется. Вот что я делаю

--this moves the bounding box of the collision, BUT not the center

self.boundingBox.sprite.tween = transition.to(self.boundingBox.sprite,{ transistion = easing.outExpo, y = arg.y, x=arg.x,time = arg.time,onComplete = function() end});

Спрайт движется так, как должен, но свойство "self.boundingBox.centerY" - нет, и я не уверен, как лучше всего справиться с этой ситуацией. пожалуйста, помогите Спасибо


person William McCarty    schedule 12.05.2013    source источник
comment
Я не уверен, что вы можете получить положение объекта в переходе. Это может быть проблематично. Я рекомендую вам использовать прослушиватель событий enterFrame и обновлять позиции объектов вручную. Таким образом, вы сможете более эффективно справляться с коллизиями.   -  person Doğancan Arabacı    schedule 12.05.2013


Ответы (1)


Похоже, что код вообще не перемещает self.boundingBox, поскольку параметр transition.to — это self.boundingBox.sprite.

Если boundingBox представляет собой группу, содержащую спрайт, вы можете просто изменить self.boundingBox.sprite на self.boundingBox, и оба должны быть перемещены. В противном случае вам нужно будет проверять изменение свойств спрайта, а не ограничивающего поля.

person MikaelE    schedule 17.05.2013