- Symulator MaSzyna -
Symulator EU07 (i nie tylko) => Symulator => Wątek zaczęty przez: libertyn89 w 22 Czerwca 2009, 17:09:06
-
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?
-
Pierwsza sprawa, to nie jestem pewien, czy oddziaływanie toru nie odbywa się tylko wtedy, gdy się na niego wjeżdża. Druga sprawa - zrób to za pomocą eventu. Dajesz do toru, na którym stoi AI 'event0 odczytaj', gdy:
event odczytaj getvalues 5.0 komorka endevent
-
Z taka sama konfiguracja, tylko ze dla ET22 postawionej na torze (track normal) dzialalo.
-
To daj prędkość początkową dla AI równą 1.0 i nie będzie problemu z odpaleniem (bo podejrzewam, że z tym jest problem). Dodatkowo musiałbyś sprawdzić na starszym exe (jeśli używasz SPKS), czy to nie wina zmian w exe.
-
Dzieki. Zadzialalo. Ale swoja droga to ciekawe - dalem predkosc poczatkowa 1.0, AI przejechalo moze 1,5 metra i sie zatrzymalo. Ruszylo dopiero po wyzwoleniu tych eventow ale zamiast 30 km/h jedzie 8 km/h :/ Jest na to jakis sposob?
-
Może spróbuj zwiększyć prędkość (tak, żeby AI dojechało do następnego toru i tam wyzwoliło sam event na prędkość) i na następnym torze niech odczyta z komórki pamięci prędkość. Jeśli pobieranie tej informacji z toru zawiedzie, sprawdź za pomocą wpisu event w torze. Jeśli i to zawiedzie, to albo jest wina chk.
-
Poki co zmienilem autobus na Autosana i jest w miare OK. Poki co dzieki za pomoc. Mysle, ze jak przeniose te eventy do docelowej trasy to wyjda jeszcze jakies kwiatki, dlatego watek pozostawiam otwarty.