如何检查卡车智能体是否已抵达指定点节点?
检查卡车是否抵达目标节点的几种方法
以下是几种实用的检查方案,适配大多数游戏/模拟场景:
- 直接对比位置坐标(基础通用方案)
由于浮点运算存在精度误差,建议设置一个小的阈值来判断位置是否重合:
const truck = main.trucks.get(0); const target = main.nodeHill; const threshold = 0.1; // 根据你的场景调整误差范围 const arrived = Math.abs(truck.x - target.x) < threshold && Math.abs(truck.y - target.y) < threshold; if (arrived) { // 执行抵达后的逻辑 console.log("卡车已到达目标节点"); }
- 利用框架内置状态属性
很多提供moveTo方法的框架,会给移动对象内置状态标识,比如isMoving、movementFinished或者currentTarget:
const truck = main.trucks.get(0); if (!truck.isMoving && truck.currentTarget === main.nodeHill) { console.log("卡车已完成到目标节点的移动"); }
- 绑定移动完成事件(推荐,无需轮询)
如果框架支持事件机制,直接监听移动完成的回调事件是最高效的方式:
const truck = main.trucks.get(0); // 绑定事件监听 truck.on('moveComplete', (completedTarget) => { if (completedTarget === main.nodeHill) { console.log("卡车已抵达目标节点"); // 在这里处理抵达后的业务逻辑 } }); // 执行移动操作 truck.moveTo(main.nodeHill);
- 检查路径执行状态
如果moveTo是基于路径点序列实现的,可以检查卡车是否走完路径,且当前节点为目标:
const truck = main.trucks.get(0); if (truck.currentPathNode === main.nodeHill && truck.remainingPathPoints.length === 0) { console.log("卡车已抵达目标节点"); }
内容的提问来源于stack exchange,提问作者Randi
相关产品推荐
相关产品推荐

