【问题标题】:Cocos2D collision detection of CCSprites on different CCNodes with different position and rotationCocos2D对CCSprites在不同位置和旋转的不同CCNode上的碰撞检测
【发布时间】:2011-11-07 20:21:52
【问题描述】:

我有这样的层次结构:

场景
- 游戏世界 (CCLayer Z:0)
- 播放器 (CCSprite Z:1)
- spriteWorld (CCNode Z:0)
- bgSprite (CCSprite Z:0)
- 敌人(CCSprite Z:0)

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

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

Cocos2D CCNode position in absolute screen coordinates

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

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

谢谢 赛仁

【问题讨论】:

    标签: iphone objective-c cocos2d-iphone


    【解决方案1】:

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

    无论如何,您可以使用 chipmunk-physicsBox2D 之类的框架来为您执行此操作。基本思想是你将一个身体/形状与你的精灵相关联,然后设置一个碰撞回调,当检测到碰撞时将触发它,而不用担心数学......

    看看这篇关于using Box2D just for collision detection的文章。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多