Dział ogólny > Pozostała twórczość / Warsztaty
Generator wpisów do semaforów świetlnych
jakubg1:
Aktualna wersja: 1.2.0.1 (w programie 2.0.1)Download dostępny w załączniku.Instrukcja:Spoiler: pokaż
UWAGA - Ta instrukcja dotyczy wersji 1.2.0.1. Instrukcja wersji 2.1.0.0 powstanie po wydaniu programu.
Instrukcja:
Aby uruchomić program należy rozpakować dostępny w załączniku plik 7Z. Otwieramy plik, który rozpakowaliśmy. Wyskoczy nam takie okienko:
Teraz po kolei, jak to wszystko działa:
Typ semafora - jak sama nazwa wskazuje, odpowiada za typ semafora. Można wybrać tarczę ostrzegawczą, manewrową, powtarzacz, semafor lub semafor SBL.
W1, W18, W19, W20, W24 - zaznaczenie któregoś z ptaszka spowoduje wygenerowanie kodu z tym wskaźnikiem. Nie wszystkie są one jednak dostępne dla każdego typu semafora, np. przy wybranym semaforze SBL nie można zaznaczyć wskaźnika W24, gdyż SBL nie wyprawi nas na niewłaściwy tor, gdyż jest po prostu brak zwrotnic do wjazdu na tenże.
Kol. powtarzacza - wskazuje kolejność powtarzacza. Należy pamiętać, że ten najbliżej semafora, do którego się odnosi, ma wartość I.
Odchyl. słupa - wskazuje odchylenie słupa. Dla semaforów, które chcemy, żeby wyglądały tak samo jak przed wersją 0.8.1, dajemy wartość "Prosto".
Karzełkowy - po zaznaczeniu utworzy się nam semafor karzełkowy. Działa to tylko dla tarcz manewrowych, gdyż reszta semaforów nie jest przystosowana w TD2 do bycia karzełkowym.
Unieważniony - po zaznaczeniu semafor będzie miał "ubrany" wskaźnik W31.
Komora 1-5 - "stos" pięciu pól wyboru z komorami. Ustawiamy komory od dołu. Szczegóły poniżej.
Pas świetlny - po zaznaczeniu jednego i/lub drugiego pasa świetlnego pojawi się on na semaforze.
Miejsce wst. - jeśli wybierzemy "Notatnik" pojawi się wpis do notatnika, a jeśli wybierzemy "Edytor" - do edytora. Szczegóły poniżej.
Kod (wciśnij C aby skopiować) - tu pojawia się kod. Jak sama nazwa wskazuje, naciśnięcie klawisza C spowoduje skopiowanie kodu.
Podgląd - podgląd semafora z uwzględnieniem komór, pasów, wskaźników, odchyłu itd.
Sygnały - lista sygnałów do wyświetlenia przez semafor.
Komory wg. prędkości - po zaznaczeniu odpowiednich pól dotyczących prędkości klikamy "Konfiguruj". Spowoduje to automatyczne skonfigurowanie komór.
A teraz wygenerujmy kod semafora, który może wyświetlić np. sygnały zezwalające na jazdę z prędkościami 40 i 60 km/h oraz który przewiduje, że na następnym możemy spotkać jazdę z prędkością 40km/h.
Krok 1. Wybieramy typ semafora. W tym celu rozwijamy listę u góry po lewej stronie i wybieramy "Semafor".
Oto co się stało po wybraniu typu:
Jak widzimy, odznaczyły nam się pewne opcje (dwa wskaźniki, wybór typu powtarzacza i karzełkowość semafora). Ale co dalej? Wciąż nie mamy semafora a kodu - jak nie było, tak nie ma.
Krok 2. Teraz musimy wprowadzić odchył semafora. Tutaj zalecam następujące opcje:
- Lewo - przy semaforze położonym po prawej stronie toru na szlakach zelektryfikowanych,
- Prosto - przy szlakach niezelektyfikowanych,
- Prawo - przy semaforze położonym po lewej stronie toru na szlakach zelektryfikowanych.
Po zaznaczeniu odchyłu zobaczymy coś takiego:
czyli w zasadzie nic, bo nic się nie zmieniło. Ale teraz możemy wreszcie przymierzyć się do właściwej części, czyli
Krok 3. Czas ustawić komory. Są dwa sposoby:
Sposób 1. - manualny. Ustawiamy komory i kontrolujemy czy wszystkie sygnały które ma podać semafor znajdują się w rubryce obok. Pamiętamy przy tym aby nie pomylić pomarańczowych i aby ustawiać komory od dołu. Pomaga przy tym podgląd semafora - a w przyszłości także wyświetlanie odpowiedniego sygnału po zaznaczeniu go na liście.
Wypełnienie rubryk powinno wygl...
Chwila, chwila... chyba zapomnieliśmy o czymś.
--- Cytuj ---...semafora, który może wyświetlić np. sygnały zezwalające na jazdę z prędkościami 40 i 60 km/h...
--- Koniec cytatu ---
No tak! Zapomnieliśmy o pasach świetlnych. Zaznaczamy w tym przypadku pomarańczowy pas świetlny.
W takim razie wszystko powinno wyglądać tak:
Jest jeszcze...
Sposób 2. - półautomatyczny. Zaznaczamy ptaszki przy opcjach - w tym przypadku 40 i 60 w górnym rzędzie i 40/60 w dolnym. Jeśli semafor ma podawać Ms2 i/lub Sz zaznaczmy też komorę białą. Konfiguracja powinna wyglądać więc tak:
Pamiętajmy, że nie zaznaczone prędkości na następnym semaforze oznaczają że semafor do niego się nie odnosi. Dlatego mamy np. zcpb. Gdy zaznaczymy 100/Vmax to już znaczy, że ten semafor odnosi się do następnego i mamy również pomarańczową komorę - wynika to z faktu, że możliwe będzie na następnym podanie sygnału "Stój".
Pozostało nam tylko kliknąć przycisk "Konfiguruj" i to wszystko.
Ustawienie komór powinno wyglądać tak jak w przypadku screena w pierwszym sposobie.
Po konfiguracji komór jedziemy dalej.
Krok 4. Ustawiamy wskaźniki. Oto możliwe wskaźniki do wstawienia:
- W1 - sam się zaznacza przy tarczy ostrzegawczej. W semaforze SBL przy blokadzie czterostawnej i tylko czterostawnej oznacza przedostatni semafor SBL przed semaforem wjazdowym na stację.
- W18 - w semaforze SBL przy blokadzie 3- lub 4-stawnej oznacza ostatni semafor SBL - następny to semafor wjazdowy.
- W19 - oznacza, że odległość między następnym semaforem a drugim następnym semaforem jest mniejsza niż droga hamowania.
- W20 - oznacza, że odległość między tym a następnym semaforem jest mniejsza niż droga hamowania.
- W24 - oznacza, że wyjazd odbywa się na tor przeciwny do zasadniczego.
- W31 (tutaj pod nazwą Unieważniony) unieważnia semafor.
Zakładamy, że mamy tutaj semafor wyjazdowy na następną grupę stacyjną (stąd tylko 40 na następnym). Nie zaznaczamy nic.
Krok 5. Ustalamy miejsce wstawienia kodu.
Kod można wstawić na 2 różne sposoby, a ponieważ delikatnie się różnią kodami zmuszony byłem do wprowadzenia systemu wprowadzenia kodu. Jeśli chcemy wklepać kod do edytora, wybieramy opcję "Edytor", a jeśli chcemy go wkleić zamieniając wpis w notatniku, wybieramy "Notatnik". Czym się różnią te kody? Różnią się tym, że wpis dla edytora nie zawiera wpisu dynamic_xx.
Krok 6. Klikamy przycisk "Generuj".
Teraz nadeszła wiekopomna chwila. Jeśli niczego nie spartaczyliśmy, powinien się pojawić kod w okienku na dole. Jeśli coś popsuliśmy, przycisk "Generuj" się zdezaktywuje i zostostanie wygenerowany tylko kawałek kodu (lub w ogóle go nie będzie). Nie musimy się jednak martwić - wystarczy popatrzeć na podpowiedź nad polem tekstowym i zaznaczyć odpowiednią opcję.
Nic nie szkodzi także jeżeli zaznaczyliśmy złą opcję. Wystarczy dokonać poprawek w opcjach (np. zmienić odchył) i jeszcze raz nacisnąć przycisk "Generuj".
Krok 7. Wprowadzamy kod.
Wygenerowany kod można wprowadzić na 2 sposoby, o tym wyżej. Ale jak to zrobić?
Zacznijmy od tego że jeżeli nie mamy w schowku nic ważnego warto nacisnąć klawisz C. Kod zostanie skopiowany do schowka.
A teraz poznajmy dwa sposoby wprowadzenia kodu.
1. Wprowadzenie do notatnika (sposób trudniejszy, działa dla semaforów kształtowych i świetlnych)
Należy zapisać stację i wyjść z edytora. Uruchamiamy w notatniku naszą stację i szukamy linijki odpowiadającej konkretnemu semaforowi, który chcemy zmienić. Przykład:
--- Kod: ---TrackObject;64;sk12;-7.513;0;175.3598;0;1.001791E-05;0;37;1.71994;D;Spawn Signal;0;
--- Koniec kodu ---
Zamieniamy TYLKO wpis między drugim a trzecim średnikiem (w tym przypadku sk12) na kod wygenerowany w notatniku.
Przykład wygenerowanego kodu:
--- Kod: ---dynamic_rs_y,slup-ps-y,4k-b-yny,drab-4k-y,wsk_w24,,,,,,light07,light04,light05,light01,,
--- Koniec kodu ---
Więc wpis semafora będzie wyglądał tak:
--- Kod: ---TrackObject;64;dynamic_rs_y,slup-ps-y,4k-b-yny,drab-4k-y,wsk_w24,,,,,,light07,light04,light05,light01,,;-7.513;0;175.3598;0;1.001791E-05;0;37;1.71994;D;Spawn Signal;0;
--- Koniec kodu ---
I koniec.
2. Wprowadzenie bezpośrednio do edytora (sposób łatwiejszy, działa tylko dla semaforów świetlnych)
UWAGA! W tym sposobie konieczne jest zaznaczenie opcji "Enable showing components" ("Pokaż wpisy tekstowe obiektów") w opcjach!
Szukamy semafora w edytorze, który chcemy zmienić. Klikamy go i otwiera się następujące okienko:
Wygenerowaliśmy następujący kod:
--- Kod: ---slup-ps-y,4k-b-yny,drab-4k-y,wsk_w24,,,,,,light07,light04,light05,light01,,
--- Koniec kodu ---
Taki kod wklejamy w pole Components. Voilá. Nic więcej.
Ograniczenia konstrukcyjne:
- Nie da się wygenerować semafora jednocześnie z W19, W20, W24 i pasem świetlnym ze względu na brak miejsca w składni kodu.
Co jeśli program mi nie działa:
Program ten jest przygotowany w The Games Factory 2 (wersja z 2005 roku) więc powinien działać poprawnie w Windows 7 i niższych. Oto co należy zrobić kiedy program nie działa lub jesteś w posiadaniu systemu nowszego niż Windows 7 (Windows 8/Windows 10):
1. Upewnij się, że program odpalasz w trybie zgodności z Windows 7. Jeżeli mimo zaznaczonej opcji nic to nie daje, próbuj z coraz starszymi systemami operacyjnymi. Jeżeli dalej nie ma efektu, skorzystaj z punktu 2.
2. Jeżeli to jest bardziej skomplikowany problem, proszę o wysłanie PW w treści podając:
a. Opis problemu ("Access violation ...", "Program Sygnalizatory.exe przestał działać ..." itp.),
b. System operacyjny.
Jeżeli potrzebne będą inne dane, odpiszę z zamiarem wyłudzenia prośbą o dokładniejszą specyfikację komputera itd.
Myślę, że ten poradnik bardzo pomoże w używaniu tego programu. Życzę wszystkim S2 na semaforach wygenerowanych moim generatorem! ;D
Changelog:Spoiler: pokaż
--- Kod: ---Changelog:
Wersja 1.1.0.0 431kB r0:
Pierwsza wersja.
Wersja 1.1.0.1 432kB r1:
r1: Przycisk "Generuj" już się nie blokuje
Wersja 1.1.1.0 435kB r6:
r2: Zmieniona kolorystyka na czerwoną
r3: Przebudowa generowania kodów do wskaźników W19/W20/W24 - powinny bezproblemowo chodzić
r4: Zmiana niektórych opisów na bardziej czytelne
r5: Dodana możliwość podglądu lampek na semaforach (taki układ jak w grze, z uwzględnieniem "palenia")
r6: Teraz pole wyboru kasuje się, gdy jest pełne a znika wskutek zmiany typu semafora (już nie generują się dodatkowe lampki)
Wersja 1.1.1.1 435kB r8:
r7: Poprawiono ważny błąd dotyczący kolejności świateł przy semaforach bez pasa
r8: Dodano możliwość obsługi 2 pasów jednocześnie
Wersja 1.1.1.2 436kB r9:
r9: Usunięto zbędne przecinki przy generowaniu semaforów 4 lub mniej komorowych bez pasa
Wersja 1.1.1.2.1 436kB r10:
r10: Drobne poprawki kosmetyczne - usunięto szpetne "cyfry debugowania" i poprawiono numer wersji
Wersja 1.1.2.0 435kB r12:
r11: Usunięto zapalone światła z menu - poprawki na rzecz wersji 0.80d
r12: Od teraz lampki podglądowe zawsze pokazują stan zapalony
Wersja 1.1.3.0 435kB r13:
r13: Zaktualizowano sposób wstawiania powtarzaczy i tarcz ostrzegawczych
Wersja 1.1.4.0 441kB r16:
r14: Dodano obsługę "odchylonych" semaforów
r15: Dodano nowy typ semafora: SBL
r16: Od teraz tarcze manewrowe karzełkowe daje się w taki sam sposób jak w przypadku zwykłych, ale trzeba zaznaczyć odpowiedni ptaszek
Wersja 1.1.4.1 440kB r18:
r17: Dodano obsługę wskaźników W31
r18: Optymalizacja pod kątem usunięcia już zbędnych stringów (teraz przecinki zawsze na końcu świateł)
Wersja 1.1.4.2 441kB r19:
r19: Dodano obsługę wskaźników W18
Wersja 1.1.4.3 441kB r20:
r20: Poprawiono błąd: W19 nie był dostępny dla tarcz ostrzegawczych
Wersja 1.1.4.4 441kB r21:
r21: Poprawiono bardzo poważny błąd związany z brakiem przecinków na końcu świateł przy generowaniu semafora 4 lub mniej komorowego
Wersja 1.1.4.5 xxxkB r23: (niedostępna oficjalnie)
r22: Zamieniono kolory pasów świetlnych w podglądzie semafora z oboma pasami świetlnymi
r23: Zmieniono opisy kolorów pomarańczowych na bardziej czytelne
Wersja 1.1.5.0 441kB r24:
r24: Przeniesiono i zmieniono opisy i same pola wyboru dotyczące komór świetlnych - teraz pasy świetlne wstawia się osobno i komory wstawia się osobno
Wersja 1.1.5.1 441kB r26:
r25: Poprawiono wyświetlanie pasów świetlnych
r26: Poprawiono generowanie pasów świetlnych
Wersja 1.1.5.2 441kB r28:
r27: Wstawianie pasów świetlnych odbywa się przez ptaszki
r28: Poprawka kosmetyczna (wstawianie świateł)
Wersja 1.1.5.3 442kB r31:
r29: Dodano możliwość generowania kodów zarówno dla notatnika, jak i dla edytora
r30: Dodano możliwość automatycznego i domyślnego ustawienia komór dla semafora, kliknięcie z Ctrl od razu generuje kod
r31: Poprawiono opisy kolejności Sp
Wersja 1.1.5.4 442kB r34:
r32: Poprawiono błąd dotyczący łączenia generowanych wpisów przy włączonej opcji "Edytor"
r33: Dodano wskaźnik W1
r34: Poprawiono ważny błąd dotyczący generowania białej komory, gdy semafor był bez pasa świetlnego
Wersja 1.1.5.5 443kB r35:
r35: Poprawiono błąd dotyczący nie generowania wpisów słupa przy włączonej opcji "Edytor"
Wersja 1.1.5.6 443kB r36:
r36: Odwrócono domyślne ułożenie komór w tarczy ostrzegawczej
Wersja 1.1.5.7 441kB r37:
r37: Naprawiono ponownie błędy r32 i r35
Wersja 1.1.5.8 441kB r40:
r38: Naprawiono błąd z drabinkami w karzełkowych tarczach manewrowych (teraz "Radio Buttony" się odznaczają)
r39: Naprawiono umiejscowienie wskaźnika W18
r40: Dodano brakujący fragment kodu (niedokończone generowanie semafora z W1 i W18 jednocześnie)
Wersja 1.1.6.0 441kB r41:
r41: Dodano dedykowane słupy SBL zamiast "innych" - poprawki na rzecz wersji nadchodzącej 0.8.4
Wersja 1.1.6.1 441kB r43:
r42: Zmieniono wpis "dynamic..." dla SBL
r43: Dodano informacje o autorze
Wersja 1.1.6.2 444kB r48:
r44: Można już używać W19 i W20 przy wszystkich semaforach z wyjątkiem powtarczaczy i tarcz manewrowych (ponieważ żaden ich nie posiada)
r45: Nowy sposób podglądu semafora (jeszcze nie ukończony)
r46: Korekty kodu
r47: Naciśnięcie klawisza C kopiuje kod do schowka
r48: Korekta położenia wskaźnika W18 w kodzie (semafory SBL)
Wersja 1.1.6.2.1 454kB r50:
r49: Ukończony podgląd semafora (stąd ten skok rozmiaru)
r50: Dodane podpowiedzi
Wersja 1.1.6.2.2 456kB r56:
r51: Zmiana nazwy "SBL" na "Semafor SBL"
r52: Poprawiona szerokość biało-czerwonych pasów w podglądzie semafora
r53: Poprawiony kolor słupa obok komór w semaforach odchylonych
r54: Naprawa błędu związanego z brakiem wyświetlania słupa SBL
r55: Dodano podpowiedź "Ustaw kolejność powtarzacza."
r56: Dodano do podglądu tabliczki kolejności powtarzacza
Wersja 1.2.0.0 470kB r62:
r57: Poprawka położenia wskaźnika kolejności powtarzacza
r58: Dodano możliwość zobaczenia sygnałów możliwych do nadania przez semafor
r59: Poprawka wyświetlania fragmentów słupa przy nie zaznaczonym odchyle
r60: Naprawa błędu podpowiedzi (tarcze manewrowe karzełkowe)
r61: Całkowite "przemeblowanie" programu
r62: Dodano możliwość "układania" komór w zależności od prędkości
Wersja 1.2.0.1 470kB r64:
r63: Zmiana napisu "Odchyl. słupa" na "Odchylenie słupa"
r64: Naprawiono błąd dotyczący generowania semafora który rzekomo ma 2 pasy świetlne i nie ma komory białej (nie generowanie się pasów)
Wersja beta3 0.1 35.5kB r0:
r0: Przepisanie generatora na C#
!!!Przepisywanie na C++, planowane zmiany względem wersji TGF2:
- Nowy sposób wybierania komór
- Dodanie szóstej komory dla starych semaforów (?)
- Dodanie podglądu sygnałów po zaznaczeniu jakiegoś na liście
--- Koniec kodu ---
Zgłaszanie błędów i sugestii
Wyniki ankiet archiwalnych:
Spoiler: pokaż
--- Cytuj ---1. Przepisanie generatora na język C#:
Za:
13 głosów
███████████████
Przeciw:
2 głosy
███████████████
2. Czy ma być nowy system wybierania komór?
Tak:
6 głosów
██████████
Nie:
4 głosy
██████████
--- Koniec cytatu ---
Jeśli chcecie wiedzieć, gdzie się podziały wszystkie ważne wątki, przeczytajcie poniższy spoiler.
Spoiler: pokaż
W związku z nowymi zasadami - "jeden projekt, jeden wątek" - byłem zmuszony podjąć decyzję na temat gdzie wszystkie wątki się znajdą. Było ich 5, jest jeden. Kiedyś już chciałem żeby był osobny dział nt. generatora, ale niestety zastosowano inne środki na temat burdelu z wątkami generatora i jest jak jest. Oto co stało się z poprzednimi wątkami:
- "Generator wpisów do semaforów świetlnych"
W tym wątku nadal będą informacje o aktualizacjach a w pierwszym poście (czyli tym co czytacie) w załącznikach znajdują się pliki.
- "Generator wpisów do semaforów świetlnych - błędy"
Miało to po stworzeniu nowego działu zmienić się w "[...]błędy i sugestie" ale niestety zarządzono inaczej - patrz wyżej.
Obecnie wątek znajduje się w archiwum. Poszukajcie, a znajdziecie ;)
Jeśli chodzi o zgłaszanie błędów proszę o wysłanie PW do mnie - nie wolno zgłaszać błędów w tym wątku.
- "Generator wpisów do semaforów świetlnych - instrukcja"
Wątek ten został przeniesiony do głównego i znajduje się w spoilerze - patrz nad changelogiem.
- "Generator wpisów do semaforów świetlnych - dyskusja (przepisanie na C#)
Po stworzeniu nowego działu miało być to zmienione na "[...]dyskusja ogólna".
Obecnie wątek ten został scalony z tym i można tu śmiało wysyłać odpowiedzi. No i jest to już dyskusja ogólna.
- "Generator wpisów do semaforów świetlnych - ankieta - Czy ma być nowy sposób wybierania komór?"
Wątek ten znajduje się w archiwum. Wyniki ankiety znajdują się wyżej.
jakubg1:
Witam.
Ostatnio dodałem do instrukcji punkt "Co robić, gdy program nie działa poprawnie?". I w tym momencie natchnął mnie genialny pomysł.
Pouczyłem się trochę C# i stwierdziłem, że program przyciągnąłby więcej ludziska (i "bardziej" by działał) gdybym przepisał generator na C#. Oczywiście samo rozmieszczenie guzików pozostałoby takie same.
Uruchamiam więc ankietę aby zobaczyć czy zgadzacie się z tym pomysłem. Możecie tutaj również rozpocząć swoją dyskusję.
Pozdrawiam.
MrDyrektor:
Jeśli tylko Ci się chce, to czemu nie - skoro działanie programu ma pozostać takie same, to chyba nikomu nie robi różnicy w jakim języku jest napisany. Poza tym (nie wiem w czym pisałeś wcześniej) C# da więcej możliwości rozwoju, a jeśli umożliwi poprawę błędów, których teraz nie da się poprawić - jak najbardziej jestem za. ;)
jakubg1:
--- Cytat: MrDyrektor w 27 Listopada 2016, 11:11:18 ---nie wiem w czym pisałeś wcześniej
--- Koniec cytatu ---
W The Games Factory 2.
--- Cytat: MrDyrektor w 27 Listopada 2016, 11:11:18 ---a jeśli umożliwi poprawę błędów, których teraz nie da się poprawić
--- Koniec cytatu ---
No i właśnie o to chodzi. Programy w TGF2 u niektórych mają masę błędów których nie da się poprawić.
_l0stfake7:
Przepisuj jak najbardziej, jeżeli wrzucisz kod na githuba to na pewno znajdzie się też sporo rąk do pomocy (w tym moje) do przepisania programu a nawet i jego udoskonalenia :D
Nawigacja
[#] Następna strona
Idź do wersji pełnej