不同位置和旋转的不同ccnode上CCSprites的Cocos2D碰撞检测



我有一个这样的层次结构:


场景 - gameWorld (CCLayer Z:0)
   - player (CCSprite Z:1)
 - spriteWorld (CCNode Z:0)
   - bgSprite (CCSprite Z:0)
,,,,,,,的敌人(CCSprite Z: 0)

spriteWorld被旋转,bgSprite被移动,所以任何放置在bgSprite上的CCSprites与gameWorld的坐标系统相比都有一个旋转和移动的坐标系统。

我需要检测放置在gameWorld和bgSprite上的CCSprites之间的碰撞。现在我看到了这篇文章:

Cocos2D CCNode在屏幕绝对坐标中的位置

可以告诉我每个精灵相对于屏幕的位置,但我如何计算或获得这些精灵的边界框?这些边界框通过spriteWorld旋转,但每个精灵也在bgSprite上旋转。

听起来像很多疯狂的数学对我来说,我是一个数学傻瓜,所以我真的真的需要帮助。

谢谢年代æ任

事实上,cocos2D没有直接支持碰撞检测,所以你需要自己完成所有的计算。

无论如何,你可以使用像花栗鼠物理或Box2D这样的框架来为你做到这一点。基本的想法是,你将一个身体/形状与精灵相关联,然后设置一个碰撞回调,当碰撞被检测到时将被触发,而不用担心数学问题。

看一下这篇关于使用Box2D进行碰撞检测的文章。

最新更新