我有一个名为"AGV“的代理,它在我的模型中用作运输工具。它是我舰队的代理人,名叫"OrderFleet“。
我怎样才能在模拟运行结束时获得AGV的行驶距离?
如果我将AGV.getDistanceTravelled(METER);放入被称为" main“的主代理的"On破坏”中,我将收到以下错误:
不能从AGV.
类型中静态引用非静态方法getDistanceTravelled(长度单位)。
发布于 2022-06-12 17:04:00
AGV是一种代理类型,而不是代理,因此您不能在其上使用getDistanceTravelled()函数。要解决您的问题,首先通过拖动和拖放到"Agent“调色板的"Agent”元素来创建AGV类型的代理。


然后,通过执行以下操作,确保将舰队块中的新运输机添加到该种群中:

现在,您可以在On破坏字段中编写以下代码:
for( AGV a : AGVs ) {
traceln(a.getDistanceTravelled(METER));
}这将返回该舰队中每辆AGV的行驶距离。
发布于 2022-06-11 08:44:10
您需要将该代码放入AGV代理类型的"on破坏性“部分,而不是Main。(Main在模型结束时只被销毁一次,而且显然根本不自己旅行:)。
如果您还没有AGV的单独代理类型,则需要创建(并应用)它。请参阅示例模型,其中详细显示了这一点。
https://stackoverflow.com/questions/72579455
复制相似问题