我有一个这样的层次结构:
场景 - 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进行碰撞检测的文章。