Определение текущего состояния агента

Чтобы определить, какому состоянию в данный момент принадлежит управление диаграммой состояний агента, воспользуйтесь функцией getState() или getActiveSimpleState() диаграммы состояний. Обе функции возвращают простое состояние, которое является активным в данный момент.

К примеру, чтобы определить текущее состояние диаграммы состояний statechart, выполнив код при наступлении некоего события (или в действиях любых других элементов, заданных внутри типа агента), вызовите функцию:

statechart.getState();

Чтобы определить, активно ли в данный момент какое-либо состояние, воспользуйтесь функцией диаграммы состояний isStateActive(). Вызов этой функции возвращает true, если указанное состояние в данный момент активно и false - в противном случае.

Пример: statechart.isStateActive(Moving);

Для этой цели можно также воспользоваться функцией inState() агента. 

В коде агента-грузовика truck (или в действиях элементов, заданных внутри данного типа агента) используйте вызов функции следующего вида: inState(Moving).

При вызове функции из кода родительского агента (например, из агента Main, которому принадлежит агент truck) предварительно выполните обращение ко вложенному агенту-грузовику: 

truck.inState(Moving); 


См. также

 Функции диаграмм состояний