Добавьте 3 экземпляра трехмерного огненного объекта, переместите их в местоположение ваших целевых линий.
Назовите их fire1, fire2 и fire3, в соответствии с именами targetLines.
В коде OnStartup на главной странице используйте следующий код, чтобы сделать их невидимыми при запуске модели:
fire1.setVisible(false);
fire2.setVisible(false);
fire3.setVisible(false);
Примечание. Нельзя просто снять флажок «Видимый» в свойствах огня. Хотя это сделает его невидимым, но позже вы не сможете снова сделать его видимым для кода. Поэтому используйте код, чтобы сделать его невидимым при запуске модели.
Чтобы «связать» видимость пожаров и препятствие на выходе, просто расширьте существующий код:
if(uniform(0,1)<0.8){ // 20% probability of obstruction
availableExits.add(targetLine1);
}
else{
fire1.setVisible(true);
}
if(uniform(0,1)<0.8){ // 20% probability of obstruction
availableExits.add(targetLine2);
}
else{
fire2.setVisible(true);
}
if(uniform(0,1)<0.8){ // 20% probability of obstruction
availableExits.add(targetLine3);
}
else{
fire3.setVisible(true);
}
Примечание: 3D-объект fire из AnyLogic не является «действительно» 3D. На самом деле он расширяется только в 2-х измерениях, что означает, что в 2D-виде вы его не видите, а в 3D-режиме только как «плоская» поверхность.
Чтобы избежать этого, возможно, просто используйте обычную форму прямоугольника, добавьте к нему размер z (теперь это трехмерный объем) и присвойте ему красный полупрозрачный цвет. Это, вероятно, выглядит не очень реалистично, но, по крайней мере, это видно со всех сторон.