我无法在 cocos2d/box2d 游戏中正确使用“变形”功能。
我的主 sprite 有两个项目要与之碰撞 - 如果 sprite 碰撞/进入一个,然后它退出另一个 - 就像扭曲或传送功能。
我遇到的问题是,如果我的 Sprite 与“A”发生碰撞,我会将它的位置移动到“B”并且它应该退出“B”并继续以与“A”之前相同的方向和速度前进"碰撞。
但是一旦 Sprite 击中“B”,它就被视为与“B”发生碰撞并跳回“A”!
因此,如果我的 sprite 遇到任何一个扭曲功能,它最终会陷入无限循环,不断地从 A 跳到 B,然后再跳回来!!
我已经尝试了很多临时修复,比如在位置上添加,例如,(x+10),以便它在退出 B 时清除“B”碰撞,但这是一个困惑的解决方案。
希望有人能有另一个好主意!!
最佳答案
使用 BOOL 来跟踪您的碰撞状态如何?
所以当你的物体与A碰撞时,设置
_isColliding = YES
一旦你没有碰撞,设置
_isColliding = NO
在 _isColliding 仍设置为 YES 时发生的任何碰撞都将被忽略。
关于cocos2d-iphone - 为 cocos2d/box2d 游戏添加一个 'warp' 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21009600/