Cocos2d iphone 节点碰撞测试-但不在结束矩形上

Cocos2d iphone 节点碰撞测试-但不在结束矩形上,cocos2d-iphone,Cocos2d Iphone,我正在寻找一些简单有效的方法来检测节点(不一定是精灵)的冲突,同时忽略节点图像透明部分的冲突。 很容易实现边界矩形碰撞。。。但它并没有反映出透明度 发表了另一种称为“像素完美”的方法。。。好吧,但我认为它效率低下,而且有点复杂。如果是全高清和更大的显示器 我想可能会产生两个精灵的一些“不透明”遮罩,只在它们边界矩形的相交处得到它们,最后在这些遮罩上执行和操作 请问,有人看到类似的东西吗?还是更好?我可以生成节点图像的透明和非透明部分吗 我也发现自己很好。尚未学习,但现在我想使用cocos2d j

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

发表了另一种称为“像素完美”的方法。。。好吧,但我认为它效率低下,而且有点复杂。如果是全高清和更大的显示器

我想可能会产生两个精灵的一些“不透明”遮罩,只在它们边界矩形的相交处得到它们,最后在这些遮罩上执行和操作

请问,有人看到类似的东西吗?还是更好?我可以生成节点图像的透明和非透明部分吗

我也发现自己很好。尚未学习,但现在我想使用cocos2d js…)


非常感谢

试试四叉树。该算法的工作原理是将节点分成4个象限,递归地将其划分为一个可能存在冲突的列表。关于它们有很多资源

我将此与像素完美检查相结合。我担心这是正确检查图像碰撞的唯一方法,除了使用每像素算法创建独特的凹凸形状来表示碰撞空间,然后使用其他算法(如Minkowski门户优化)。然而,如果你改变了图像或设置了动画,你的游戏可以获得同等的性能打击


有趣的是,pp交叉点被用于像pong这样的游戏中,处理能力要小得多。Pp还提供了与其他算法相比最精确的交点。

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

感谢您的及时反应。啊哈,很有趣。但我猜,在像素完美的方法中,仍然会分配太多大的缓冲区,并将精灵反复渲染到这些缓冲区。对吗?是的,然后你使用非常快的alg在缓冲区中搜索。我在我设计的一个游戏中实现了这一点。我在gamedev.stackexhage上问了同样的问题。我建议使用散列列表重新命名,这样您就可以删除重复的x,y坐标,并检查pp交叉点的列表是否大于0。Ok。非常感谢你的推荐。我环顾四周,发现完美像素可能是最方便的起点。再次感谢。Zbynek作为未来的提示,您应该开始考虑如何插值碰撞。(对象的空间每个更新间隔都是数字的,会导致“跳过”。对象的速度越快,跳过本应触发的交叉点的可能性越高)