Autor Wątek:  Zamykanie semaforów eventami  (Przeczytany 2672 razy)

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

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6310
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 340
Zamykanie semaforów eventami
« dnia: 18 Lipca 2010, 19:34:57 »
W rozwoju edytora dotarłem już do eventów. W torze przy semaforze (tarczy manewrowej) umieszczam event# *_sem_info. Pojazd z obsadą wjeżdża na tor, odczytuje i odpowiednio reaguje. To jakoś jest do przyjęcia, zwłaszcza że symulacja jest tak zorganizowana, że pojazd "szuka w przód" eventu z ustawieniem prędkości.

Powiedzmy, że pojazd przejechał za semafor. W efekcie na semaforze powinien ustawić się sygnał S1 (na tarczy Ms1). Jeśli wstawię tam eventall# *_s1, to on wykona się dla każdego wagonu z osobna. Jeśli to będzie tylko event#, wykona się raz dla pojazdu obsadzonego, ale nie wykona się, jeśli pojadą same wagony (np. z górki).

Semafor SBL ma sprawdzanie warunku, jaki sygnał jest aktualnie ustawiony. Czyli dla każdego wagonu wygeneruje się jeden multiple, z których tylko pierwszy się wykona i zmieni sygnał (o ile ktoś nie zepsuł opóźnień). Zwykłe semafory zaś nie mają warunków.

Rozwiązaniem bliższym rzeczywistości było by generowanie eventów w momencie zmiany stanu zajętości toru. Czyli tor zaczyna być zajęty, gdy cokolwiek na niego wjedzie, a przestaje, gdy już z niego wszystko zjedzie (albo lepiej - oddali się na odpowiednią odległość).
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni