节点碰撞测试 - 但不是在布线矩形上

时间:2015-01-21 14:33:00

标签: cocos2d-iphone

我正在寻找一些简单而有效的方法来检测节点的碰撞(不一定是精灵),同时忽略节点透明部分的碰撞。图片。 很容易实现边界Rects碰撞...但它不反映透明度。

There发布了其他名为" Pixel-perfect" ...好的方法,但我觉得它效率低,而且有些复杂。在全高清和更大的显示器的情况下...

我想有可能产生一些不透明的"两个精灵的面具,只在它们的边界部分的交叉处得到它们,最后对这些面具执行AND操作......

拜托,有没有人看到类似的东西?或更好?我可以生成节点图像的透明和不透明部分吗?

我也很好地找到了thisthis。尚未研究但现在我想使用cocos2d-js .... :)

非常感谢

2 个答案:

答案 0 :(得分:0)

尝试四叉树。该算法通过将节点递归地分成4个象限到具有可能碰撞的列表中来工作。有很多关于他们的资源。

我把它与像素完美检查相结合。我担心这是正确检查图像的唯一方法。碰撞不使用每像素算法创建独特的凹凸形状来表示碰撞空间,然后使用其他算法(如Minkowski门户细化)。但是,如果您的图像发生变化或动画,您的游戏可以获得同等的性能。

有趣的是,pp交叉用于像乒乓球这样的游戏,处理能力要低得多。与其他算法相比,Pp也提供了最准确的交集。

答案 1 :(得分:0)

您可以使用物理碰撞。并设置物理体来重复节点的不透明部分。