You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AnyLogic中如何暂停MoveTo块内移动的Agent并恢复其移动?

解决GIS空间MoveTo块中Agent暂停/恢复移动的问题

你之前的代码无效,是因为在GIS空间的MoveTo块中,Agent的移动逻辑不受setSpeed()方法直接控制——MoveTo块在执行移动任务时会覆盖Agent的speed属性,所以改speed无法暂停移动。正确的做法是使用AnyLogic为GIS移动Agent提供的专用暂停/恢复方法:

步骤1:修改“On enter”动作代码

替换你原来的代码,调用Agent的pauseMovement()方法实现暂停:

if(moveToBlock.size() > 0) {
    for(Agent tr : moveToBlock.agents()) {
        tr.pauseMovement(); // 暂停Agent的GIS移动任务
    }
    timeOutEvent.restart();
}

步骤2:修改超时事件的恢复代码

同样用专用恢复方法替代setSpeed():

for(Agent tr : moveToBlock.agents()) {
    tr.resumeMovement(); // 从暂停位置恢复移动
}

额外说明

  • pauseMovement()会直接暂停Agent当前的GIS移动任务,Agent会停在原地;resumeMovement()会继续执行剩余的移动路径,无需重新设置速度。
  • 如果你的MoveTo块设置了“重复移动”或其他循环逻辑,该方法依然有效,暂停后恢复会从断点继续。

内容的提问来源于stack exchange,提问作者juanpablorv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 18:52:08