Napotkalem na pewien problem dotyczacy sterowania AI autobusami. Opisze po kolei czynnosci, ktore wykonalem.
W scenerii testowej dodalem nastepujacy tor (w zasadzie droge):
node -1 0 tor_bus_1 track road 20.0 5.0 0.85 -1 15 0 flat vis
AsphaltDark1_DashedWhite.bmp 6.0 AsphaltDark1_side1.tga 0.2 0.2 0.5
11.04488 0.2 398.998 0.0 //point 1
0.0 0.0 0.0 //control vector 1
0.0 0.0 0.0 //control vector 2
11.04488 0.2 498.998 0.0 //point 2
0
endtrack
Nastepnie na tym torze-drodze ustawilem autobus:
trainset none tor_bus_1 30.0 0.0
node -1 0 solaris dynamic road\Solaris urbino12_polbus urbino12 0.0 headdriver 0 0 enddynamic
endtrainset
Kolejnym krokiem bylo zdefiniowanie komorki pamieci. W przypadku zmiany parametrow ma ona oddzialywac na tor tor_bus_1
node -1 0 komorka memcell 2 2 2 Wait_for_orders 0 0 tor_bus_1 endmemcell
Nastepnie zdefiniowalem dwa zdarzenia, ktore maja zmieniac zawartosc komorki komorka, tak aby AI ruszylo autobusem:
event AI_on updatevalues 0.0 komorka Jump_to_order 0 0 endevent
event AI_go updatevalues 2.0 komorka SetVelocity 30 30 endevent
Na sam koniec dodalem jeszcze event ktory wyzwoli po kolei zdarzenia AI_on i AI_go:
event aktywuj multiple 10.0 none
AI_on
AI_go
endevent
Pozostalo jeszcze przypisanie wyzwolenia eventu aktywuj do toru, po ktorym porusza sie lokomotywa (kierowana przeze mnie):
event2 aktywuj
Uruchamiam scenerie. Ruszam lokomotywa, wyzwalam event aktywuj eventy AI_on i AI_go rowniez sie aktywuja i na tym koniec. AI (autobus) stoi. Oto fragment loga:
EVENT ADDED TO QUEUE:
aktywuj
EVENT LAUNCHED:
aktywuj
Multiple passed
EVENT ADDED TO QUEUE:
AI_on
EVENT ADDED TO QUEUE:
AI_go
EVENT LAUNCHED:
AI_on
Type: UpdateValues & Track command - Jump_to_order
EVENT LAUNCHED:
AI_go
Type: UpdateValues & Track command - SetVelocity
Czy istnieje w ogole mozliwosc uruchomienia AI nie lokomotywy?