-
Notifications
You must be signed in to change notification settings - Fork 0
stationFunctions3
![]() EN PL |
Przykład 4 pokazuje, jak skorzystać z 'zaawansowanego układu sprite' w przypadku powtarzających się układów stacji. Dobrym przykładem może być układ stacji z koniecznością powtarzania się, tylko dla różnych sprite'ów ładunkowych, co można by przedstawić poprzez zmianę koloru sprite'a próbki ładunku. Zaawansowany układ sprite'ów dla stacji daje możliwość prostego dodania zmienionych kolorów sprite'ów do ich własnego bloku sprite'ów i łatwy dostęp do nich za pomocą funkcji układu.
Przykład 4 (użycie rejestrów i zmiana koloru sprite'ów):
asl_on()
layout(ADVTEST,
tile(
ground(1012)
recolour(0, xyz(8,8,0), dxdydz(8,8,8), 0, aslflags({OFFSET_RCSPRITE,
CUSTOM_RCSPRITE, RESOLVE_RCSPRITE}), registers({11,4}))
)
tile(
...
)
)
// budowanie sprite'ów
spriteblock(
set(
sprite(advtest.pcx 10 10 09 22 32 -14 -16)
)
)
def(0) spriteset(little(0))
// <span title=odbarwienie>recolour</span> 'sprites' - pomarańczowe i niebieskie
spriteblock(ALLOCATE,
set(
colourtable(DOSMAP,
62 .. 67, C0 .. C5,
)
colourtable(DOSMAP,
62 .. 67, 92 .. 97,
)
)
)
def(1) spriteset(little(0))
def(2) spritetype( ref(1) if(4) // odświeża 'sprites' ref(0) else // budowanie sprite'ów )
def(3) setregisters(11,1,ref(2)) // 2. wpis zmiany koloru: niebieski
def(4) callback( cbr(0) if(CB_LAYOUT) ref(3) else // grafika )
makestation(ADVTEST, default(ref(4)) )
Należy odnotować, że rejestry używane w zaawansowanym układzie sprite'ów muszą być ustawione wewnątrz łańcucha grafiki, a nie w łańcuchu wywołań zwrotnych. Odbywa się to w def(3), gdzie funkcja setregisters() ustawia rejestr '11' na wartość '1', tj. Drugi wpis 'sprite' zmieniającego kolor. W def(2) łańcuch grafiki jest podzielony na łańcuch dla sprite'ów budynku, def(0) i dodatkowy łańcuch dla sprite'ów zmiany koloru, def(1).
W layoucie 'sprite' jest definiowana do zmiany koloru za pomocą funkcji recolour(), przy czym pierwszy parametr ustawia 'sprite' budynku, a czwarty parametr ustawia 'sprite' recolour, w tym przypadku oba na '0' . Parametr 5 określa flagi OFFSET_RCSPRITE, CUSTOM_RCSPRITE i RESOLVE_RCSPRITE, a parametr 6 określa rejestr, który ma być użyty do zdefiniowania przesunięcia 'sprite' ponownego koloru, oraz łańcuch grafiki do rozpoznawania sprite'ów 'ponownego kolorowania' (4).
Ta funkcja umożliwia skopiowanie definicji układu kafli. Pierwszy argument to ID-stacji, dla której zdefiniowano układ kafli, pozostałe argumenty to ID stacji, do których należy skopiować układ kafli.
Tak samo jak powyżej, ale ta funkcja umożliwia skopiowanie niestandardowej definicji układu kafla TTD . Pierwszy argument to ID-stacji, dla którego zdefiniowano niestandardowy układ kafli TTD, pozostałe argumenty to ID-stacji, do których mają zostać skopiowane niestandardowe układy kafli.
Funkcje te służą do oceny zmiennych związanych z grą i udostępniania ich funkcji aktywacji stacji . Typowa aplikacja wykorzystywałaby wiele tych funkcji połączonych ze sobą, tworząc "łańcuch", łączący 'sprites' graficzne stacji z jej funkcją aktywacji. Zobacz tutaj przykład .
| Funkcja | Opis |
|---|---|
| anim_frame ([,] <block>) | Pobierz ramkę animacji |
| anim_trigger (<block>) | Pobierz aktualny wyzwalacz animacji |
| callback (<block>) | Sprawdź rodzaj oddzwonienia |
| cargotrigger (<block>) | Pobierz typ ładunku dla wyzwalacza animacji |
| cargowaiting (<Cargo-ID>, <block>) | Ilość oczekującego ładunku |
| else | To naprawdę próżne stwierdzenie |
| Exclusiveiverights (<block>) | Liczba miesięcy wyłączne prawa transportowe będą obowiązywać |
| iswaypoint (<block>) | Stacja waypoint nie odbierze żadnego ładunku |
| pbsinfo (<block>) | Informacje sygnalizacyjne oparte na ścieżce |
plt_edges(<block>)
plt_even([<shift-mask>,]]bieżących kaflach platformtest_pos(<block>)
test_posrev(<block>)
test_num(<block>)
test_numrev(<block>)
test_length(<block>)
test_total(<block>)
test_axis(< lblock>)
test_position(<block>)
test_size(<block>)
test_tiletype([<shift-mask>,]]]}
| Opis |
Ta funkcja zwraca rzeczywistą wartość licznika animacji bieżącego kafla, aby zdecydować o wyświetleniu klatki. Wartość zwracana jest z zakresu od zera do liczby klatek animacji określonej we właściwości anim_info() definicji stacji roboczej .
W przypadku podania dodatkowego parametru współrzędnej zwracana jest aktualna wartość licznika animacji danego kafla. Prośba odnotowania, że współrzędne muszą być podane przez funkcję pomocniczą pos(, ,)
