【问题标题】:CoCos2D Intersection of non-rectangular spritesCoCos2D 非矩形精灵的交集
【发布时间】:2012-12-12 06:04:59
【问题描述】:

我有一个三角形的精灵,我想知道这个三角形何时与另一个对象(CCSPrite)相交。我一直在使用CGRectIntersectsRect,但它并不准确,因为它采用了两个精灵的边界框,而不是实际的形状。

--编辑

我认为一种方法是在实际三角形周围定义几个点并检查这些点与另一个精灵之间的交点。我只是想知道是否有更简单的方法来做到这一点。

【问题讨论】:

    标签: cocos2d-iphone


    【解决方案1】:

    您可以使用 box2d 准确检测碰撞。如果您有许多不同的复杂形状,它会很有用。或者您可以只检查形状边缘的交叉点。

    如果有很多物体需要检测碰撞,我建议使用 box2d。它具有良好的内部优化,能够处理大量对象。在这种情况下,您只需在将对象添加到游戏层之前创建与精灵形状相同的物理体。

    【讨论】:

    • dang...我在没有box2d+cocos2d的情况下开始了我的项目...有没有办法在只用cocos2d开始后添加它?
    • 当然 =) 任何模板都只有一些预定义的声明和初始化。你总是可以自己添加它们。你可以找到很多关于在你的项目中添加box2d以及如何使用它的文章。
    • 感谢您的回答,但我想我将采用在我的对象中引入几个 CGPoints 的方法。我觉得仅仅为了这个目的引入 Box2D 是不是太过分了?
    • 也许吧。正如我在帖子中提到的,当您有很多对象并且您需要检测所有对象的碰撞时,box2d 非常好。如果是多个对象,则过度
    猜你喜欢
    • 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
    相关资源
    最近更新 更多