Cocos2d与UIKit视图的融合与应用
1. Cocos2d节点的点击测试
在Cocos2d中,进行节点的点击测试是一个常见的需求。以下是相关的代码实现:
// check the node itself
hit = CGRectContainsPoint(node.boundingBox, point);
// abort search on first hit
if (hit)
{
break;
}
1.1 点击测试流程
- 递归遍历节点层次结构 :for循环的前半部分通过递归调用函数,深入遍历Cocos2d节点层次结构。如果任何递归调用找到了点击目标,循环会立即终止。
- 检查当前节点 :后半部分检查正在迭代的实际节点。首先确保不测试CCScene或CCLayer类节点,因为它们的边界框通常设置为整个屏幕区域,测试这些类节点会总是“命中”,这是需要避免的。
- 实际点击测试 :确认测试的是具有合理边界框的节点后,实际的检查很简单,即测试点是否在边界框内:
hit = CGRectContainsPoint(node.boundingBox, point);
如果有命中,循环终止,方法返回。这是一种优化,因为只需要找到对点击测试有积极响应的任何节点。
超级会员免费看
订阅专栏 解锁全文

62

被折叠的 条评论
为什么被折叠?



