2015-03-19 2 views
1

У меня есть игра, в которой пользователь перетаскивает мой главный спрайт. Основной спрайт сталкивается с другими спрайтами просто отлично, только когда пользователь очень быстро перетаскивает основной спрайт. Иногда, когда основной спрайт движется быстро, физические тела просто проходят через друг друга, и оба спрайта внезапно перекрываются. У меня есть набор точек останова, который регистрирует количество попаданий в файле didBeginContact, и он не попадает.сделалBeginContact не вызвал на быстро движущийся спрайт

Есть ли предел того, насколько быстро спрайт может двигаться и по-прежнему покрываться didBeginContact? Я позволяю пользователю перемещать спрайт быстрее, чем игровой цикл может справиться с столкновениями?

Опять же, когда спрайт движется с низкой скоростью, физика работает отлично.

+0

Если ваш спрайт (шар) двигается со скоростью говорят х + 50 и ваш объект столкновения (стена) только 20x широкие, то ваш мяч будет проходить прямо над стеной в одном кадре без столкновения. – sangony

ответ

1

Помните, что все эти вещи рассчитаны по кадре. Вероятно, вы перемещаете спрайт так быстро, что заканчиваетесь на другой стороне экрана в слишком маленьких кадрах, чтобы считать столкновение. Если кто-то пассивно движется пальцем, он может не поймать его. Вы могли бы установить ограничение скорости на спрайт или что-то еще.

1

попытки установить PHYSIC тело usesPreciseCollisionDetection = YES

+0

да, это может помочь – hamobi

Смежные вопросы