问题描述
据此,我在建模过程中有一个问题。我希望我的代理有一个由时间和条件触发的事件,例如:goToSchool 如果早上 6 点多并且有校车。我很困惑是使用超时触发器(但不能使用条件)还是使用条件(但不能使用超时),或者有没有可能的替代方法?
解决方法
在您的示例中,“如果超过 6 点”是一个条件,而不是超时。当您希望事件在确切时间发生时,将使用超时触发器。在您的情况下,虽然“上午 6 点以上”与时间有关,但它仍然是一个条件。所以我会使用具有两个条件的条件触发事件:
getHourOfDay() > 6 && <bus condition>
getHourOfDay() 函数以 24 小时格式返回一天中的小时。
您需要记住一些与条件触发事件相关的重要事项,它们仅在“更改时”进行评估。我建议您仔细阅读此内容:
我的建议是在控制公交车到达的块中使用 onChange()
函数,以便在每次公交车到达时评估条件。