用于确定精灵是否在屏幕上可见的Cocos本机方法?

时间:2012-02-06 03:36:58

标签: cocos2d-iphone

我想知道Cocos中是否有任何简单的工具可以自动确定精灵是否可见。我可以自己编写一堆逻辑,但是如果Cocos已经内置了一个简单的测试来查看精灵是否可见或者隐藏在另一个精灵后面,那就太好了。由于Cocos有许多其他工具可以在许多地方消除对自定义逻辑的需求,这似乎可能是该工具集的一部分,但我在搜索中找不到任何东西。

如果所有具有较高z设置的精灵的边界框覆盖或隐藏了所讨论的精灵的边界框,那么测试它是一个简单的例子。

1 个答案:

答案 0 :(得分:0)

您可以使用此函数来确定两个rects(精灵的边界框)是否相交:

CGRectIntersectsRect(rect1, rect2);

然后计算z顺序。 如果你想更精确,你可以计算一个索引来知道第一个精灵覆盖第二个精灵的数量:

Index = (2 * Area (CGRectIntersection(rect 1, rect2)))/(Area(rect1) + Area(rect2));

CGRectIntersection计算由另外两个的交集产生的矩形。 如果Index为1,则两个矩形恰好一个在另一个之上。