Symulator EU07 (i nie tylko) > Na warsztacie
Planowane zmiany w exe
Milek7:
--- Cytat: maciek001 w 17 Lutego 2017, 19:10:46 ---Do końca też nie rozumiem jak to sterowanie działa
--- Koniec cytatu ---
Obecnie są dwie drogi. Część to eventy odbierane z okienka i przekazywane do World::OnKeyDown (a później do Train::OnKeyDown), a co innego sprawdza co klatkę czy klawisz jest wciśnięty przez wrappera Console::Pressed.
maciek001:
Czyli mogę w kodzie gdzieś wywołać funkcję, która przełączy mi hebelek lub wciśnie NEF-a tak?
Milek7:
W zależności od tego której drogi dana funkcjonalność używa to:
- podać wciśnięty klawisz do World.OnKeyDown (i później World.OnKeyUp)
- zmodyfikować Console::Pressed tak aby oprócz wciśnięcia na klawiaturze sprawdzało też inne urządzenia. (Console::Pressed jest wywoływane z różnych miejsc sprawdzających różne klawisze co klatkę). Jeżeli chcesz np. zasymulować SHIFT+O to musisz zwrócić true zarówno dla shift jak i O.
maciek001:
--- Cytat: tmj w 02 Lutego 2017, 18:28:59 ---Sterowanie umiescilbym na poziomie pociagu, w calosci przy pomocy komend, odpowiednikow biezacych komend rozsylanych po skladzie.
--- Koniec cytatu ---
Przerabiam właśnie Traina: wciśnięcie przycisku powoduje wywołanie metody a nie wykonanie bezpośrednio kodu. Dzięki temu można wykorzystać te metody do sterowania pojazdem z pulpitu. Wydaje mi się, że w takim wypadku zmiana kamery na np przedział maszynowy nie powinien powodować wyłączenia kabiny i sterowania nią. Można by tutaj dodać CKS do sterowania wyborem kabiny. Moim zdaniem można to zrobić dla czterech przypadków: mamy możliwość wysterowania CKS-a więc mamy załączoną kabinę A, B lub wyłączone sterowanie. Jeżeli nie mamy sterowania z pulpitu lub AI to zostaje pozycja "wszystkie kabiny włączone".
W tym momencie jest pewien bajzel w Train::OneKeyDown. Tam gdzie nie ma Shift-a są (czasem) przełączania z Shft-em i z Ctrl-em.
--- Cytat: Milek7 w 11 Lutego 2017, 13:37:36 ---- UART: Tu coś trzeba pewnie wymyślić. Albo znaleźć jakąś wieloplatformową libkę, albo napisać po prostu dwie implementacje pod windowsa i unixy, z tym nie powinno być dużo problemów.
--- Koniec cytatu ---
Nie wiem czy nie będę musiał przerobić trochę moich wypocin i zrobić osobną klasę do łączenia się przez port szeregowy i osobno wykorzystanie tej komunikacji. Wtedy można dopiero chyba przerabiać na coś bardziej uniwersalnego (wind i unix).
--- Cytat: tmj w 17 Lutego 2017, 12:58:54 ----- dodanie obslugi przez klikniecia na elementy bezposrednio w kabinie.
--- Koniec cytatu ---
To jest dobry pomysł. Część ludzi będzie zachwycona takimi zmianami.
Adams napisał jak to działa w innych symkach i też nie jest to zły pomysł. Na pewno lepiej będzie zaimplementować większą jak nie wszystkie opcje (przełączniki itp) i potem zastanawiać się czy da się wyprowadzić na klawiaturę niż dokładać potem wszystko. Jeżeli ktoś ma lub robi kabinę/własne sterowanie to będzie mógł korzystać nawet jeżeli nie będzie tego na klawiaturze.
--- Cytat: Milek7 w 17 Lutego 2017, 21:47:29 ---- zmodyfikować Console::Pressed tak aby oprócz wciśnięcia na klawiaturze sprawdzało też inne urządzenia. (Console::Pressed jest wywoływane z różnych miejsc sprawdzających różne klawisze co klatkę).
--- Koniec cytatu ---
Właśnie starałem się z tym jakoś wygrać ale nie wyszło więc robię trochę inaczej i chciałbym prosić o przeglądnięcie pomysłu i wypowiedzenie się na jego temat. Jak skończę to dam znać ;)
Milek7:
--- Cytat: maciek001 w 28 Lutego 2017, 19:00:10 ---Nie wiem czy nie będę musiał przerobić trochę moich wypocin i zrobić osobną klasę do łączenia się przez port szeregowy i osobno wykorzystanie tej komunikacji. Wtedy można dopiero chyba przerabiać na coś bardziej uniwersalnego (wind i unix).
--- Koniec cytatu ---
Możesz rzucić okiem na http://sigrok.org/api/libserialport/unstable/
Nawigacja
[#] Następna strona
Idź do wersji pełnej