Транспортное средство CCPhysics на земле?

Я работаю над 2D-игрой с боковым видом в Cocos2d V3.1, используя CCphysics (интегрированный Chipmunk-Physics).

У меня есть настройка делегата, и обратный вызов работает, и я могу установить для свойства (например, _onGround) значение true, но я не могу понять, как изначально установить для параметра значение false.

Мои колеса имеют collisionType значение "колесо" и делегат с методом, называемым

-(void)ccPhysicsCollisionPostSolve:(CCPhysicsCollisionPair )pair wheel:(CCNode )nodeA wildcard:(CCNode *)nodeB {

Делегат вызывается, как и предполагалось, но я не могу понять, как сбрасывать значение в каждом цикле.


person Polykiss    schedule 13.08.2014    source источник


Ответы (1)


Поскольку колесо может одновременно касаться более чем одного наземного объекта, я бы использовал счетчик вместо флажка. Каждый раз, когда вы получаете событие начала столкновения, увеличивайте значение. Каждый раз, когда вы получаете отдельное событие столкновения, уменьшайте его. Если счет равен 0, то вы не на земле. Если он положительный, то вы. Нет необходимости обрабатывать (несколько) событий коллизий в каждом кадре и не нужно сбрасывать значение между кадрами.

person slembcke    schedule 13.08.2014
comment
аааа, позвольте мне попробовать это и отчитаться. Спасибо. - person Polykiss; 13.08.2014