【问题标题】:CCSprite in Cocos2dCocos2d 中的 CCSprite
【发布时间】:2011-04-08 11:07:44
【问题描述】:

我是 cocos2d 的初学者

我想在 cocos2d 中制作简单的游戏。

我将 CCsprite 用于图像文件,但我想放置一些随机形状,如菱形....这不是图像...我制作了这个形状,但是当我使用与其他 CCsprite 的碰撞检测时,就会出现问题....然后我做钻石的对象..

如何与钻石对象发生碰撞....或者我如何在 CCSprite 中使用此对象....

请给我正确的答案...

提前谢谢...

【问题讨论】:

    标签: ios4 cocos2d-iphone


    【解决方案1】:

    只需使用以下方法:
    bool CGRectContainsRect ( CGRect rect1, CGRect rect2 );
    想了解更多,请关注https://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGGeometry/Reference/reference.html

    【讨论】:

    • 嘿,谢谢,但是通过这种方法,我只能识别图像部分,因为实际上图像是矩形,菱形是他们的...如果您认为这种方法对他们有效...
    • 嘿,你使用 cocos2d,所以在这里帮助我如何在 CCSprite 中设置我的绘图对象,如果我将它设置在 sprite 上,那么我很容易添加你的方法并检测碰撞。
    【解决方案2】:

    Cocos2d 中的简单碰撞检测是重叠矩形检测或矩形点检测。要检测复杂形状的碰撞,您需要使用物理引擎(Box2D 或 Chipmunk),但这肯定会让您的游戏不再简单:)。

    或者,也许您可​​以使用两次碰撞检测。首先,您检测形状的边界矩形是否重叠,如果重叠,那么您使用一些数学公式或其他东西来检查钻石形状的碰撞。一些骨架代码:

    if (CGRectContainsRect([sprite1 boundingBox], [sprite2 boundingBox])) {
       /* the rectangles overlap so now use some trigonometric formula, 
          euler formula, harmonic series or fourier transform or something, 
          to further check if the actual shapes overlap or not :P */
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多