Cocoscreate 实现检查两个Node节点是否在对方区域内 边缘内就算。代码示例
时间: 2024-03-07 10:52:46 浏览: 85
以下是一个简单的 Cocos Creator 实现检查两个 Node 节点是否在对方区域内(边缘内算)的代码示例:
```javascript
// 判断 node1 是否在 node2 区域内(边缘内算)
function isNodeInArea(node1, node2) {
var node1Rect = node1.getBoundingBoxToWorld();
var node2Rect = node2.getBoundingBoxToWorld();
// 判断 node1 的四个角是否在 node2 区域内
var p1 = cc.v2(node1Rect.xMin, node1Rect.yMin);
var p2 = cc.v2(node1Rect.xMin, node1Rect.yMax);
var p3 = cc.v2(node1Rect.xMax, node1Rect.yMax);
var p4 = cc.v2(node1Rect.xMax, node1Rect.yMin);
return cc.Intersection.rectRect(node2Rect, node1Rect) ||
cc.Intersection.pointInPolygon(p1, node2Rect) ||
cc.Intersection.pointInPolygon(p2, node2Rect) ||
cc.Intersection.pointInPolygon(p3, node2Rect) ||
cc.Intersection.pointInPolygon(p4, node2Rect);
}
// 使用示例
var node1 = cc.find("node1");
var node2 = cc.find("node2");
if (isNodeInArea(node1, node2)) {
// node1 在 node2 区域内
} else {
// node1 不在 node2 区域内
}
```
在使用 Cocos Creator 判断两个 Node 节点是否在对方区域内时,可以使用节点的 getBoundingBoxToWorld() 函数获取节点在世界坐标系中的包围盒,然后判断节点的四个角是否在对方的包围盒内,或者使用 cc.Intersection.rectRect() 函数判断两个矩形是否相交。
阅读全文