Symulator EU07 (i nie tylko) > Na warsztacie

 Planowane zmiany w exe

<< < (8/11) > >>

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

[0] Indeks wiadomości

[#] Następna strona

[*] Poprzednia strona

Idź do wersji pełnej
Powered by Advanced Topic Prefix Pro
Powered by SMFPacks Likes Pro Mod