Files
Patryk Gensch df6cf2f3d3
Some checks failed
docs / deploy (push) Has been cancelled
docs / build (push) Has been cancelled
Added part of docs
2026-05-19 20:51:59 +02:00

16 KiB
Raw Permalink Blame History

ANIMO

Animacja wczytywana z pliku .ANN. Najbardziej rozbudowany typ wizualny w silniku — obsługuje wiele zdarzeń (sekwencji klatek), zmianę FPS-u, kotwicę punktu zaczepienia, przezroczystość, monitorowanie kolizji oraz tryb przycisku.

Animacja składa się z zdarzeń (event), z których każde jest sekwencją klatek (frame). Numer klatki w zdarzeniu liczony jest od 0, a indeks globalny klatki w całej animacji liczony jest od 0 osobno.

Pola

ASBUTTON

BOOL ASBUTTON

Traktuje animację jako klikalny przycisk. Modyfikowane przez metodę SETASBUTTON.

FILENAME

STRING FILENAME

Nazwa pliku .ANN z animacją. Pole odczytywane podczas inicjalizacji zmiennej; może być nadpisane metodą LOAD.

FPS

INTEGER FPS

Liczba klatek animacji na sekundę. Modyfikowane przez metodę SETFPS.

MONITORCOLLISION

BOOL MONITORCOLLISION

Określa, czy animacja uczestniczy w detekcji kolizji. Modyfikowane przez metody MONITORCOLLISION i REMOVEMONITORCOLLISION.

MONITORCOLLISIONALPHA

BOOL MONITORCOLLISIONALPHA

Określa, czy w detekcji kolizji uwzględniany jest kanał przezroczystości.

PRELOAD

BOOL PRELOAD

Określa, czy dane animacji mają być załadowane od razu przy inicjalizacji.

PRIORITY

INTEGER PRIORITY

Priorytet renderowania (Z) względem innych obiektów na scenie.

TOCANVAS

BOOL TOCANVAS

Określa, czy animacja jest rysowana na głównej kanwie sceny. Ustawienie FALSE ukrywa animację wizualnie, ale silnik nadal ją odtwarza i emituje powiązane zdarzenia.

VISIBLE

BOOL VISIBLE

Widoczność animacji. Modyfikowana metodami SHOW i HIDE.

Metody

GETANCHOR

STRING GETANCHOR()

Zwraca aktualnie ustawioną kotwicę animacji w postaci, w jakiej została przekazana do SETANCHOR.

Zwraca: nazwa kotwicy lub jej współrzędne.

GETCENTERX

INTEGER GETCENTERX()

Zwraca współrzędną X środka bounding boxa aktualnej klatki animacji.

Zwraca: środek X.

Przykłady

ANNREX^GETCENTERX();

GETCENTERY

INTEGER GETCENTERY()

Zwraca współrzędną Y środka bounding boxa aktualnej klatki animacji.

Zwraca: środek Y.

GETCFRAMEINEVENT

INTEGER GETCFRAMEINEVENT()

Zwraca numer bieżącej klatki wewnątrz aktualnie odtwarzanego zdarzenia (licząc od 0).

Zwraca: indeks klatki w zdarzeniu.

Przykłady

ANNREX^GETCFRAMEINEVENT();

GETCURRFRAMEPOSX

INTEGER GETCURRFRAMEPOSX()

Zwraca przesunięcie w osi X dla aktualnie wyświetlanego obrazka (per-klatkowe, definiowane w pliku animacji).

Zwraca: przesunięcie X obrazka.

GETCURRFRAMEPOSY

INTEGER GETCURRFRAMEPOSY()

Zwraca przesunięcie w osi Y dla aktualnie wyświetlanego obrazka.

Zwraca: przesunięcie Y obrazka.

GETENDX

INTEGER GETENDX()

Zwraca prawą krawędź bounding boxa aktualnej klatki.

Zwraca: prawa krawędź X.

GETENDY

INTEGER GETENDY()

Zwraca dolną krawędź bounding boxa aktualnej klatki.

Zwraca: dolna krawędź Y.

GETEVENTNAME

STRING GETEVENTNAME()

Zwraca nazwę aktualnie odtwarzanego zdarzenia.

Zwraca: nazwa zdarzenia.

Przykłady

ANNREX^GETEVENTNAME();

GETFRAME

INTEGER GETFRAME()

Zwraca globalny indeks aktualnie odtwarzanej klatki (niezależny od podziału na zdarzenia).

Zwraca: globalny indeks klatki.

GETFRAMENAME

STRING GETFRAMENAME()

Zwraca nazwę aktualnie odtwarzanej klatki (nazwa pliku obrazka).

Zwraca: nazwa klatki.

GETHEIGHT

INTEGER GETHEIGHT()

Zwraca wysokość aktualnej klatki animacji.

Zwraca: wysokość w pikselach.

GETMAXHEIGHT

INTEGER GETMAXHEIGHT()

Zwraca maksymalną wysokość spośród wszystkich klatek animacji.

Zwraca: największa wysokość w pikselach.

GETMAXWIDTH

INTEGER GETMAXWIDTH()

Zwraca maksymalną szerokość spośród wszystkich klatek animacji.

Zwraca: największa szerokość w pikselach.

Przykłady

ANN_STATEK^GETMAXWIDTH();

GETNAME

STRING GETNAME()

Zwraca nazwę zmiennej animacji.

Zwraca: nazwa zmiennej.

GETNOE

INTEGER GETNOE()

Zwraca liczbę zdarzeń w animacji (skrót od Number Of Events).

Zwraca: liczba zdarzeń.

Przykłady

ANNLISCIESLOTY^GETNOE();
ANNBTN^GETNOE();

GETNOF

INTEGER GETNOF()

Zwraca łączną liczbę klatek w animacji (skrót od Number Of Frames).

Zwraca: liczba klatek.

GETNOFINEVENT

INTEGER GETNOFINEVENT(INTEGER eventId)
INTEGER GETNOFINEVENT(STRING eventName)

Zwraca liczbę klatek w podanym zdarzeniu. Zdarzenie można wskazać numerem (od 0) lub nazwą (wielkość liter bez znaczenia). Dla nieistniejącego zdarzenia zwracane jest 0.

Parametry

  • eventId / eventName — identyfikator zdarzenia.

Zwraca: liczba klatek w zdarzeniu.

Przykłady

ANNREX^GETNOFINEVENT(VARSTEMP0);
ANNUKLAD^GETNOFINEVENT(0);
ANNPLANNAK^GETNOFINEVENT("IDLE");

GETPOSITIONX

INTEGER GETPOSITIONX([BOOL absolute])

Zwraca współrzędną X lewego górnego rogu aktualnej klatki na kanwie. Wariant z BOOL zwraca pozycję bezwzględną, bez uwzględniania per-klatkowych przesunięć z pliku animacji.

Parametry

  • absolute — (opcjonalnie) TRUE, aby pominąć przesunięcia per-klatkowe.

Zwraca: pozycja X.

GETPOSITIONY

INTEGER GETPOSITIONY([BOOL absolute])

Zwraca współrzędną Y lewego górnego rogu aktualnej klatki na kanwie. Wariant z BOOL zwraca pozycję bezwzględną.

Parametry

  • absolute — (opcjonalnie) TRUE, aby pominąć przesunięcia per-klatkowe.

Zwraca: pozycja Y.

GETPRIORITY

INTEGER GETPRIORITY()

Zwraca priorytet renderowania (Z) animacji.

Zwraca: wartość pola PRIORITY.

GETWIDTH

INTEGER GETWIDTH()

Zwraca szerokość aktualnej klatki animacji.

Zwraca: szerokość w pikselach.

HIDE

void HIDE()

Ukrywa animację wizualnie, nie przerywając jej odtwarzania. Po wywołaniu PLAY widoczność zostanie automatycznie przywrócona.

ISAT

BOOL ISAT(INTEGER posX, INTEGER posY)

Sprawdza, czy punkt o podanych współrzędnych znajduje się wewnątrz bounding boxa aktualnej klatki.

Parametry

  • posX — współrzędna X punktu.
  • posY — współrzędna Y punktu.

Zwraca: BOOLTRUE, jeżeli punkt jest wewnątrz bounding boxa.

ISNEAR

BOOL ISNEAR(STRING animoName, INTEGER iouThresholdPercent)

Sprawdza, czy bieżąca animacja jest w pobliżu drugiej animacji. Wewnętrznie wyznaczany jest indeks Jaccarda (Intersection over Union, IoU) bounding boxów dwóch animacji; jeżeli IoU przekracza podany próg (wyrażony w procentach), zwracane jest TRUE.

Parametry

  • animoName — nazwa drugiej animacji.
  • iouThresholdPercent — próg IoU w procentach.

Zwraca: BOOLTRUE, jeżeli IoU przekracza próg.

Przykłady

ENEMY^ISNEAR("HERO", 1);
ANNORKA^ISNEAR("ANNLODKA", 12);

ISPLAYING

BOOL ISPLAYING()
BOOL ISPLAYING(STRING eventName)

Sprawdza, czy animacja jest odtwarzana. Wariant bez argumentu sprawdza, czy jakiekolwiek zdarzenie jest aktualnie odtwarzane; wariant z nazwą zdarzenia sprawdza, czy odtwarzane jest konkretnie to zdarzenie.

Parametry

  • eventName — (opcjonalnie) nazwa zdarzenia do sprawdzenia.

Zwraca: BOOLTRUE, jeżeli animacja (lub konkretne zdarzenie) jest odtwarzana.

Przykłady

ANNREX^ISPLAYING();
ANNREXGLOWA^ISPLAYING("SPI");

ISVISIBLE

BOOL ISVISIBLE()

Sprawdza, czy animacja jest widoczna (VISIBLE = TRUE i TOCANVAS = TRUE).

Zwraca: BOOLTRUE, jeżeli animacja jest widoczna.

LOAD

void LOAD(STRING path)

Wczytuje animację z pliku .ANN, zastępując dotychczasową zawartość.

Parametry

  • path — ścieżka pliku .ANN w VFS gry.

Przykłady

ANNBKG^LOAD(SOBJECT|NAME);
ANNCHARACTER^LOAD("PIXEL.ANN");
ANNMINIMAPA^LOAD([""+ILEVEL+"_MINIMAPA.ANN"]);

MONITORCOLLISION

void MONITORCOLLISION()

Włącza monitorowanie kolizji animacji z innymi obiektami.

MONITORCOLLISIONALPHA

void MONITORCOLLISIONALPHA()

Włącza uwzględnianie kanału alfa przy detekcji kolizji.

MOVE

void MOVE(INTEGER offsetX, INTEGER offsetY)

Przesuwa animację o zadane wartości względem aktualnej pozycji.

Parametry

  • offsetX — przesunięcie w osi X.
  • offsetY — przesunięcie w osi Y.

Przykłady

ANNELEMENT^MOVE(-200, 0);
ANNPLAYER^MOVE(VARDX, VARDY);
ANNITEMDRAGGING^MOVE([IMOUSEX-IMOUSELASTX], [IMOUSEY-IMOUSELASTY]);

NEXTFRAME

void NEXTFRAME()

Przeskakuje do następnej klatki bieżącego zdarzenia.

NPLAY

void NPLAY(INTEGER eventId)

Rozpoczyna odtwarzanie zdarzenia o podanym indeksie (numerowanym od 0).

Parametry

  • eventId — indeks zdarzenia.

Przykłady

ANNDARK0^NPLAY(VARITEMP2);
CZAS^NPLAY(0);

PAUSE

void PAUSE()

Wstrzymuje odtwarzanie animacji w aktualnej klatce.

PLAY

void PLAY([STRING eventName])

Rozpoczyna odtwarzanie zdarzenia. Wariant bez argumentu wznawia ostatnio odtwarzane zdarzenie od początku.

Parametry

  • eventName — (opcjonalnie) nazwa zdarzenia do odtworzenia (wielkość liter bez znaczenia).

Przykłady

G_STLPAGE^PLAY("ELAPSE");
ANNREX^PLAY(VARITEMP0);
ANNKRET^PLAY(["IDLE_"+ANNKRET^GETEVENTNAME()]);
ANIMOREKSIO^PLAY($1);

PREVFRAME

void PREVFRAME()

Przechodzi do poprzedniej klatki bieżącego zdarzenia.

REMOVEMONITORCOLLISION

void REMOVEMONITORCOLLISION()

Wyłącza monitorowanie kolizji, włączone wcześniej przez MONITORCOLLISION.

REMOVEMONITORCOLLISIONALPHA

void REMOVEMONITORCOLLISIONALPHA()

Wyłącza uwzględnianie kanału alfa przy detekcji kolizji, włączone wcześniej przez MONITORCOLLISIONALPHA.

RESUME

void RESUME()

Wznawia odtwarzanie wstrzymane przez PAUSE.

SETANCHOR

void SETANCHOR(STRING anchor)
void SETANCHOR(INTEGER offsetX, INTEGER offsetY)

Ustawia kotwicę animacji — punkt zaczepienia, który jest odejmowany od współrzędnych przekazywanych do SETPOSITION.

Wariant z STRING przyjmuje nazwę pozycji wyliczonej z bounding boxa: CENTER, LEFTUPPER, RIGHTUPPER, LEFTLOWER, RIGHTLOWER, LEFT, RIGHT, TOP, BOTTOM.

Wariant z dwoma INTEGER-ami przyjmuje współrzędne kotwicy bezpośrednio.

Parametry

  • anchor — nazwa pozycji w bounding boxie.
  • offsetX, offsetY — współrzędne kotwicy.

Przykłady

ANNSELECT^SETANCHOR("CENTER");
ANNREX^SETANCHOR("LEFTLOWER");
ANNREX^SETANCHOR(0, -100);

SETASBUTTON

void SETASBUTTON(BOOL enabled, BOOL changeCursor)

Ustawia animację jako klikalny przycisk. Niezależnie od wartości argumentów wywołanie sprawia, że animacja staje się widoczna.

Parametry

  • enabledTRUE, aby aktywować obsługę kliknięć.
  • changeCursorTRUE, aby kursor zmieniał wygląd po najechaniu na animację.

Przykłady

ANNEXIT^SETASBUTTON(TRUE, TRUE);
ANIMOPOWROT^SETASBUTTON(FALSE, FALSE);

SETBACKWARD

void SETBACKWARD()

Ustawia kierunek odtwarzania animacji na wsteczny.

SETFORWARD

void SETFORWARD()

Ustawia kierunek odtwarzania animacji na zgodny z naturalnym (do przodu).

SETFPS

void SETFPS(INTEGER fps)

Zmienia tempo odtwarzania animacji.

Parametry

  • fps — liczba klatek na sekundę.

Przykłady

STLMAGIC^SETFPS(5);
ANNMUCHA1^SETFPS(30);
ANNKON^SETFPS([IKONFPS*8]);

SETFRAME

void SETFRAME(INTEGER frameNumber)
void SETFRAME(STRING eventName, INTEGER frameNumber)
void SETFRAME(STRING eventName, STRING frameName)

Ustawia animację na konkretną klatkę. Wariant z jednym argumentem ustawia klatkę po jej globalnym indeksie. Wariant dwuargumentowy wybiera zdarzenie, a następnie pozycję w nim (przez numer lub nazwę klatki).

Parametry

  • eventName — nazwa zdarzenia.
  • frameNumber — indeks klatki w zdarzeniu (od 0) lub globalny indeks klatki.
  • frameName — nazwa konkretnej klatki w zdarzeniu.

Przykłady

ANNREX^SETFRAME(VARSTEMP0, [VARITEMP2-1]);
ANNSCIAGA^SETFRAME("PLAY", VARIREPEATSPELL);
OFERTA^SETFRAME(3);
ANN_H_PIECYK^SETFRAME("ROT", "PIECYK4");

SETFRAMENAME

void SETFRAMENAME(INTEGER eventId, INTEGER frameNumber, STRING name)

Zmienia nazwę konkretnej klatki w podanym zdarzeniu.

Parametry

  • eventId — indeks zdarzenia (od 0).
  • frameNumber — indeks klatki w zdarzeniu (od 0).
  • name — nowa nazwa klatki.

Przykłady

ANNKALAREPA^SETFRAMENAME(0, 0, "200");
ANNKALAREPA^SETFRAMENAME(1, 0, "300");

SETOPACITY

void SETOPACITY(INTEGER opacity)

Ustawia przezroczystość animacji w skali 0255 (0 — pełna przezroczystość, 255 — pełna nieprzezroczystość).

Parametry

  • opacity — wartość kanału alfa.

Przykłady

ANNPLAYER0^SETOPACITY(255);
ANNPLAYER^SETOPACITY(100);

SETPOSITION

void SETPOSITION(INTEGER posX, INTEGER posY)

Ustawia bezwzględną pozycję animacji. Jeżeli wcześniej ustawiono kotwicę metodą SETANCHOR, jej współrzędne są odejmowane od podanych argumentów.

Parametry

  • posX — współrzędna X.
  • posY — współrzędna Y.

Przykłady

ANNREX^SETPOSITION(400, 300);
ANNEXIT^SETPOSITION(-700, -450);
ANNBKG^SETPOSITION([VARIBKGOFFSETX-VARDTEMP0], [VARIBKGOFFSETY-VARDTEMP1]);

SETPRIORITY

void SETPRIORITY(INTEGER priority)

Ustawia priorytet renderowania.

Parametry

  • priority — nowa wartość pola PRIORITY.

Przykłady

ANNREX^SETPRIORITY(VARIPRIORITY);
ANNHEAD1^SETPRIORITY(15);

SHOW

void SHOW()

Pokazuje animację (ustawia VISIBLE na TRUE).

STOP

void STOP([BOOL emitSignal])

Zatrzymuje odtwarzanie animacji.

Parametry

  • emitSignal — (opcjonalnie) jeżeli FALSE, sygnał ONFINISHED nie zostanie wyemitowany. Domyślnie sygnał jest emitowany.

Przykłady

G_STLPAGE^STOP(FALSE);
ANNREX^STOP(FALSE);
ANNBLANK^STOP();

TOP

void TOP([BOOL flag])

Modyfikuje sposób renderowania animacji względem warstwy „wierzchu" sceny. Dokładne zachowanie zależne od bieżącej kompozycji sceny.

Parametry

  • flag — (opcjonalnie) flaga modyfikująca tryb działania.

Przykłady

ANNWAND0^TOP(FALSE);
ANNHEAD0^TOP(FALSE);

Sygnały

ONCLICK

Wywoływany po kliknięciu w animację, jeżeli jest ustawiona jako przycisk (SETASBUTTON).

ONCOLLISION

Wywoływany po wykryciu rozpoczęcia kolizji.

ONCOLLISIONFINISHED

Wywoływany po zakończeniu kolizji.

ONDONE

Wywoływany po zakończeniu wszystkich zdarzeń animacji.

ONFINISHED

Wywoływany po zakończeniu odtwarzania zdarzenia. Sygnał jest parametryzowany nazwą zdarzenia, więc można podpiąć handler dla konkretnego zdarzenia:

ANIMACJA:ONFINISHED^IDLE=BEHAFTERIDLE

ONFIRSTFRAME

Wywoływany po odtworzeniu pierwszej klatki zdarzenia.

ONFOCUSON

Wywoływany po najechaniu kursorem na animację, jeżeli jest ustawiona jako przycisk.

ONFOCUSOFF

Wywoływany po zjechaniu kursorem z animacji, jeżeli jest ustawiona jako przycisk.

ONFRAMECHANGED

Wywoływany po zmianie klatki animacji.

ONINIT

Wywoływany w momencie inicjalizacji obiektu.

ONPAUSED

Wywoływany po wstrzymaniu animacji metodą PAUSE.

ONRELEASE

Wywoływany po zwolnieniu przycisku myszy nad animacją ustawioną jako przycisk.

ONRESUMED

Wywoływany po wznowieniu animacji metodą RESUME.

ONSIGNAL

Wywoływany po otrzymaniu sygnału (zobacz Zdarzenia i sygnały).

ONSTARTED

Wywoływany po rozpoczęciu odtwarzania zdarzenia. Sygnał emitowany jest po ONFRAMECHANGED dla pierwszej klatki zdarzenia.