Autor Wątek:  Planowane zmiany w exe  (Przeczytany 45528 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline adamst

  • Zasłużony dla Symulatora
  • Wiadomości: 354
    • Zobacz profil
  • Otrzymane polubienia: 75
Odp: Planowane zmiany w exe
« Odpowiedź #30 dnia: 17 Lutego 2017, 14:01:02 »
Jak dla mnie dość dobrze sprawdza się system trainzowy - tzn. jako podstawę mamy klikanie elementów myszą - kursor jest widoczny cały czas. Aby kręcić głową przytrzymuje się PPM. Uzupełnieniem powinny być skróty klawiszowe dla funkcji, które naturalnie powinny być "pod ręką" - czyli nastawnik, hamulce, syrena i czuwak. Natomiast rzeczy "konfiguracyjno-uruchomieniowe" typu światła czy różne rzeczy do włączenia podczas uruchamiania jak najbardziej nadają się do obsługi myszką.

Offline Stele

  • Zasłużony dla Symulatora
  • Wiadomości: 10133
    • Zobacz profil
  • Otrzymane polubienia: 2609
Odp: Planowane zmiany w exe
« Odpowiedź #31 dnia: 17 Lutego 2017, 15:33:55 »
Zgadzam się z Adamem. Q robił już siódemkę klikaną. Nie wiem czy opis metody gdzieś jeszcze wisi, ale jakoś to działało.
Każdy element powinien mieć opcję aktywacji z klawiatury, nawet jakby miało to być alt+id_guzika. Tak co by mnie nasz niewidomy deweloper nie zabił, jeśli coś z tego wyjdzie. Spamiętać listę kodów, spamięta. Trafić myszą w guzik już nie.
Mój kanał youtube

Offline Krzysiek626

  • Zasłużony dla Symulatora
  • Wiadomości: 5925
  • EXIT
    • Zobacz profil
    • Krzysiek626
  • Otrzymane polubienia: 443
Odp: Planowane zmiany w exe
« Odpowiedź #32 dnia: 17 Lutego 2017, 15:56:36 »
Czy jest planowana opcja instalatora? Istotne z punktu widzenia doinstalowania różnych bibliotek. Istotne także dlatego, że można by zrobić menu wyboru poziomu jakości grafiki (dla słabszego sprzętu) i właśnie wybór domyślnego manipulatora sterowania (mysz lub klawiatura).
Czy jest możliwość wbudowania prostego startera umożliwiającego wybór scenerii, składu i ewentualną podmianę pojazdów i warunków atmosferycznych.

Offline tmj

  • Zasłużony dla Symulatora
  • Wiadomości: 3808
    • Zobacz profil
  • Otrzymane polubienia: 2351
Odp: Planowane zmiany w exe
« Odpowiedź #33 dnia: 17 Lutego 2017, 16:44:14 »
Starter by sie przydal, bo poleganie na zewnetrznych narzedziach nie jest specjalnie profesjonalne ;)  To raczej projekt na dluzsza mete, miedzy innymi dlatego, ze przydaloby sie do niego jakies UI, a tego w exe na razie ani sladu. UI ewentualnie bedzie musialo sie zjawic przy wprowadzaniu edycji scenerii z poziomu exe, wiec starter tez prawdopodobnie moze zmaterializowac sie wtedy.

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: Planowane zmiany w exe
« Odpowiedź #34 dnia: 17 Lutego 2017, 19:10:46 »
Na pewno byłbym wdzięczny za "wyciągnięcie" w jakiś sensowny sposób sterowania, żeby można było sterować z innego pliku. Na razie nie mam pomysłu ;) Do końca też nie rozumiem jak to sterowanie działa i skąd wziąć te wszystkie bóle (bool) z lampek. Gdyby ktoś był chętny do pogadanki na ten temat to zapraszam gdzieś na forum, PW lub FB.
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline Milek7

  • Administrator
  • Wiadomości: 1047
    • Zobacz profil
  • Otrzymane polubienia: 902
Odp: Planowane zmiany w exe
« Odpowiedź #35 dnia: 17 Lutego 2017, 19:19:14 »
Do końca też nie rozumiem jak to sterowanie działa
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.

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: Planowane zmiany w exe
« Odpowiedź #36 dnia: 17 Lutego 2017, 21:41:33 »
Czyli mogę w kodzie gdzieś wywołać funkcję, która przełączy mi hebelek lub wciśnie NEF-a tak?
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline Milek7

  • Administrator
  • Wiadomości: 1047
    • Zobacz profil
  • Otrzymane polubienia: 902
Odp: Planowane zmiany w exe
« Odpowiedź #37 dnia: 17 Lutego 2017, 21:47:29 »
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.

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: Planowane zmiany w exe
« Odpowiedź #38 dnia: 28 Lutego 2017, 19:00:10 »
Sterowanie umiescilbym na poziomie pociagu, w calosci przy pomocy komend, odpowiednikow biezacych komend rozsylanych po skladzie.
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.

- 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.
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).

-- dodanie obslugi przez klikniecia na elementy bezposrednio w kabinie.
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.

- 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ę).
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ć ;)
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline Milek7

  • Administrator
  • Wiadomości: 1047
    • Zobacz profil
  • Otrzymane polubienia: 902
Odp: Planowane zmiany w exe
« Odpowiedź #39 dnia: 28 Lutego 2017, 19:16:01 »
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).
Możesz rzucić okiem na http://sigrok.org/api/libserialport/unstable/

Offline firleju

  • Zasłużony dla Symulatora
  • Wiadomości: 1588
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 121
Odp: Planowane zmiany w exe
« Odpowiedź #40 dnia: 28 Lutego 2017, 19:16:16 »
Wątek troszkę podupadł bo tmj zajął się światłami, a trzeba pozbierać nasze myśli. Maćku jeśli teraz zaczniesz coś grzebać to ugrzęźniesz i albo przerobisz na swoją modłę i tak zostanie na wieki wieków albo narobisz się a potem to i tak będzie trzeba wyrzucić.
Jeśli dotykać Traina pod kątem sterowania to najlepiej ustalić do czego docelowo chcemy dojść bez rozpiski na poszczególne kroki i potem powolna implementacja małymi krokami.
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: Planowane zmiany w exe
« Odpowiedź #41 dnia: 28 Lutego 2017, 19:23:57 »
Możesz rzucić okiem na http://sigrok.org/api/libserialport/unstable/
W sumie można to zaimplementować zamiast bo teraz są osobno metody do uruchamiania, wyłączania i sprawdzania połączenia. Zastanawiam się tylko czy nie wyciągnąć tego do osobnego pliku.

Jeśli dotykać Traina pod kątem sterowania to najlepiej ustalić do czego docelowo chcemy dojść bez rozpiski na poszczególne kroki i potem powolna implementacja małymi krokami.
Sterowanie wrzucić do metod i tam zmiany wprowadzać a nie robić bajzel pod przyciskami ;)
« Ostatnia zmiana: 28 Lutego 2017, 19:25:06 wysłana przez maciek001 »
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline firleju

  • Zasłużony dla Symulatora
  • Wiadomości: 1588
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 121
Odp: Planowane zmiany w exe
« Odpowiedź #42 dnia: 28 Lutego 2017, 19:37:11 »
A jak nie ma przycisku w kabinie to nie działa (por. piasecznica, przyp. redaktora). Tylko jak się w to już bawić to na docelowo. Powiedzmy, że pomysł ze sterowaniem tmj jest ok, tzn Train przechwytuje zdarzenie i rozsyła po wszystkich pojazdach. Każdy pojazd zmienia swój stan wewnętrzny na podstawie właściwości (prowadzący, ukrotniony czy co tam jeszcze) i przesyła dane do wszystkich instancji kabin. Te sobie ustawiają na podstawie stanu odpowiednie urządzenia (wtedy w kabinie B będą się załączały lampki przy sterowaniu w kabinie A). Wtedy brak przycisku po prostu nic nie animuje, ale sam stan pojazdu się zmieni.
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: Planowane zmiany w exe
« Odpowiedź #43 dnia: 28 Lutego 2017, 20:05:08 »
Ja patrzę na to bardziej z perspektywy sterowania z jednej kabiny i nie ważne czym ;) Jak będzie metoda Piasecznica() to teraz sterować mogę za pomocą pulpitu albo z klawiatury ale zawsze tym samym i sterowanym pojazdem. Teraz co jest z tym dalej robione, czyli czy sterujemy innym pojazdem (ukrotnienie) czy tylko hamulcami wagonów to już można załatwiać w innym miejscu (pewnie przy Update()).
Cytuj
A jak nie ma przycisku w kabinie to nie działa
- to gdzie jest i dlaczego nie działa :D

Pasuje mi zwiększyć iFeedbackBit do long albo nawet long long inta ;) int trochę krótki się wydaje na te wszystkie dostępne lampki a chciałbym unikać podmianek, że jeżeli EZT to taka lamka a jak nie to inna.
« Ostatnia zmiana: 28 Lutego 2017, 20:08:01 wysłana przez maciek001 »
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline Milek7

  • Administrator
  • Wiadomości: 1047
    • Zobacz profil
  • Otrzymane polubienia: 902
Odp: Planowane zmiany w exe
« Odpowiedź #44 dnia: 28 Lutego 2017, 20:11:30 »
Zamiast rozdmuchiwać wielkość intów która kiedyś się skończy, popatrz na std::bitset

Offline firleju

  • Zasłużony dla Symulatora
  • Wiadomości: 1588
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 121
Odp: Planowane zmiany w exe
« Odpowiedź #45 dnia: 28 Lutego 2017, 20:37:28 »
Zamiast robić jednej długiej zmiennej lepiej to podzielić i wysyłać osobno w kolejnych ramkach. W pierwszej wrzucasz liczbę ramek a potem już układ do pulpitu na podstawie opisu wie co ma wyciągnąć z której. W ten sposób masz elastyczny mechanizm, który Ci się raczej nie skończy.
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: Planowane zmiany w exe
« Odpowiedź #46 dnia: 28 Lutego 2017, 21:15:47 »
Wiem, że można to zrobić inaczej ale chciałem użyć coś co już jest zaimplementowane ;)
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline tmj

  • Zasłużony dla Symulatora
  • Wiadomości: 3808
    • Zobacz profil
  • Otrzymane polubienia: 2351
Odp: Planowane zmiany w exe
« Odpowiedź #47 dnia: 01 Marca 2017, 04:55:08 »
A jak nie ma przycisku w kabinie to nie działa (por. piasecznica, przyp. redaktora). Tylko jak się w to już bawić to na docelowo. Powiedzmy, że pomysł ze sterowaniem tmj jest ok, tzn Train przechwytuje zdarzenie i rozsyła po wszystkich pojazdach. Każdy pojazd zmienia swój stan wewnętrzny na podstawie właściwości (prowadzący, ukrotniony czy co tam jeszcze) i przesyła dane do wszystkich instancji kabin. Te sobie ustawiają na podstawie stanu odpowiednie urządzenia (wtedy w kabinie B będą się załączały lampki przy sterowaniu w kabinie A). Wtedy brak przycisku po prostu nic nie animuje, ale sam stan pojazdu się zmieni.
Tzn. mozna to zrobic tak, a jakby ktos sie uparl zeby bylo bardziej "prawdziwie" to mozna aranzowac w ten sposob, ze na pewnym poziomie sa urzadzenia wejscia (interpreter klawiatury, konsoli, joysticka, klikania na element w kabinie, AI mechanic czy co tam jeszcze) i te przekladaja otrzymane od uzytkownika sygnaly na instrukcje uniwersalne typu "nastawnik raz do przodu", ktore sa przesylane do klasy-posrednika. A na drugim poziomie masz obiekt - odpowiednik konsoli sterowania w lokomotywie, ktory sie u tego posrednika subskrybuje, ze chce otrzymywac konkretne instrukcje zgodne z tym, w co dana konsola jest wyposazona. I po otrzymaniu takich instrukcji konsola uaktualnia sobie swoj stan, i przekazuje instrukcje do pociagu, ktory juz ja sobie wykonuje/rozsyla dalej itp. Ta metoda mozna troche prosciej realizowac warianty typu dwie konsole w jednej kabinie, czy co tam jeszcze wyskoczy.

Do pewnego stopnia ten model juz jest, tylko zapackany przez dorzucone modyfikacje o shift, ctrl itp, ktore powinny byc zamiast tego osobnymi, pelnoprawnymi instrukcjami
« Ostatnia zmiana: 01 Marca 2017, 04:57:45 wysłana przez tmj »

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: Planowane zmiany w exe
« Odpowiedź #48 dnia: 01 Marca 2017, 10:48:53 »
Taka wersja mi się podoba. Chodzi o rozgraniczenie sterowania przez nastawy (nastawniki, przyciski, przełączniki) a logikę ich działania. Teraz np WS jest w dwóch miejscach: OneKeyDown i Update. Rozgraniczyłbym przycisk od tego jaki rezultat się dostaje. Czyli np załączenie z opóźnieniem WS-a.
PS: jest gdzieś wykrywany przejazd nad rezonatorem SHP?

Tak to wygląda teraz:
« Ostatnia zmiana: 01 Marca 2017, 13:22:41 wysłana przez maciek001 »
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline El Mecánico

  • Wiadomości: 1067
  • Dawniej El Driver
    • Zobacz profil
    • Stowarzyszenie POLARIS - OPP
  • Otrzymane polubienia: 2
Odp: Planowane zmiany w exe
« Odpowiedź #49 dnia: 01 Marca 2017, 13:51:19 »
Jakoś to jest zrobione, chyba przez event. Nie mam exe C++, ale przed konwersją działało...
www.polaris.org.pl
www.ciemneniebo.pl
MaSzyna_LD w trakcie tworzenia...

Offline firleju

  • Zasłużony dla Symulatora
  • Wiadomości: 1588
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 121
Odp: Planowane zmiany w exe
« Odpowiedź #50 dnia: 01 Marca 2017, 20:42:54 »
Rezonator jest poprzez event.
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline AtapiCl

  • Zasłużony dla Symulatora
  • Wiadomości: 4426
    • Zobacz profil
    • O warszawskiej części linii kolejowej nr 7 Warszawa – Lublin i nie tylko ;)
  • Otrzymane polubienia: 212
Odp: Planowane zmiany w exe
« Odpowiedź #51 dnia: 04 Maja 2017, 23:28:39 »
Przyklejam, żeby się nie zagubiło. Jak potrzeba będzie uprzątnięcia ze zbędnych postów, to dajcie znać.