【发布时间】:2021-05-31 02:25:35
【问题描述】:
我有一个行人代理,它有两种状态:健康和受伤。我已将此状态图连接到 Ped 流程图。当 Ped 进入受伤状态时,它需要 deleteSelf() 并且应该将新代理添加到 ped 群体中。这个人群有一个 ped,当它受伤时,一个新的 ped 出现在模型中。
但是,我意识到我不能在受伤状态下使用deleteSelf(),而 ped 在流程图中的块中。而不是我在受伤状态下使用cancel(this);对于 ped 受伤时可能存在的所有障碍。例如;
main.goToExcSite.cancel(this);
main.pedWait.cancel(this);
main.exitExcSite.cancel(this);
我在这些块的取消部分写了ped.deleteSelf();。再次。它在运行模型时不接受deleteSelf();。
我该怎么做?谢谢。
【问题讨论】:
-
嗨,Neda,总是分享错误信息(更好的截图),很有帮助。
-
另外,这是什么块? ped-library 流块(
ped工作的地方)或流程库块(您需要使用agent的地方) -
嗨 Benjamin,这是一个 ped-library 流程块。我将错误添加到主要问题中。谢谢。
-
作为第一印象,这似乎可以通过使用“删除”功能来解决。您需要首先从流程图块中删除代理(例如 pedWait.remove(agent) ),然后让代理自行删除。但我会让本杰明确认一下。
-
谢谢埃米尔。现在完美运行。
标签: anylogic