Files
Patryk Gensch 198d9cf477 Finished automatically generated docs
Time to correct it by itself
2026-05-20 22:49:46 +02:00

5.7 KiB

INERTIA

Interfejs do wbudowanego silnika fizycznego 2D o tej samej nazwie (Inertia). Zarządza ciałami sztywnymi: tworzeniem obiektów, ich wiązaniem z animacjami, polem grawitacji, prędkościami, tłumieniem i przykładaniem sił. Wykorzystany w Reksio i Kretes w Akcji.

Każdy obiekt fizyczny ma identyfikator (objectId) — wartość całkowitą używaną przez większość metod do wskazania ciała. Plik definiujący świat fizyczny ma rozszerzenie .INE i jest ładowany jednorazowo metodą LOAD.

Metody

ADDFORCE

void ADDFORCE(INTEGER objectId, INTEGER forceX, INTEGER forceY)

Przykłada siłę do obiektu w osiach X i Y.

Parametry

  • objectId — identyfikator obiektu.
  • forceX, forceY — składowe siły.

Przykłady

EXTWORLD^ADDFORCE(1,-500,0);
EXTWORLD^ADDFORCE(1,0,-50);

CREATESPHERE

void CREATESPHERE(INTEGER objectId, INTEGER posX, INTEGER posY, INTEGER radius)

Tworzy w silniku fizycznym sferę o podanej pozycji środka i promieniu, przypisując jej wskazany identyfikator.

Parametry

  • objectId — identyfikator nowego obiektu.
  • posX, posY — pozycja środka sfery.
  • radius — promień sfery.

Przykłady

EXTWORLD^CREATESPHERE(5,10,10,10);

DELETEBODY

void DELETEBODY(INTEGER objectId)

Usuwa obiekt z silnika fizycznego.

Parametry

  • objectId — identyfikator usuwanego obiektu.

Przykłady

EXTWORLD^DELETEBODY(IHANDLEDEL);
EXTWORLD^DELETEBODY(IRAKIETAOBJ);

GETPOSITIONX

INTEGER GETPOSITIONX(INTEGER objectId)

Zwraca aktualną pozycję X obiektu o podanym identyfikatorze.

Parametry

  • objectId — identyfikator obiektu.

Zwraca: INTEGER — koordynata X.

GETPOSITIONY

INTEGER GETPOSITIONY(INTEGER objectId)

Zwraca aktualną pozycję Y obiektu o podanym identyfikatorze.

Parametry

  • objectId — identyfikator obiektu.

Zwraca: INTEGER — koordynata Y.

GETSPEED

DOUBLE GETSPEED(INTEGER objectId)

Zwraca prędkość obiektu o podanym identyfikatorze (długość wektora prędkości liniowej).

Parametry

  • objectId — identyfikator obiektu.

Zwraca: DOUBLE — wartość prędkości.

void LINK(INTEGER objectId, STRING animoName, BOOL flag1, BOOL flag2)

Wiąże obiekt fizyczny z animacją ANIMO — pozycja animacji jest aktualizowana na podstawie symulacji fizyki. Znaczenie obu flag boolowskich nie zostało jeszcze ustalone (w grach zawsze podawane są jako TRUE).

Parametry

  • objectId — identyfikator obiektu fizycznego.
  • animoName — nazwa zmiennej ANIMO.
  • flag1, flag2 — flagi konfiguracyjne (znaczenie nieustalone).

Przykłady

EXTWORLD^LINK(1,"ANNSZCZUREK",TRUE,TRUE);
EXTWORLD^LINK(IOBIEKT,["ANNSTRZAL_"+ISTRZAL],TRUE,TRUE);

LOAD

void LOAD(STRING path)

Ładuje plik .INE z definicją świata fizycznego.

Parametry

  • path — ścieżka do pliku .INE.

Przykłady

EXTWORLD^LOAD("WORLD.INE");

RESETTIMER

void RESETTIMER()

Resetuje wewnętrzny zegar symulacji.

Przykłady

EXTWORLD^RESETTIMER();

SETGRAVITY

void SETGRAVITY(DOUBLE gravityX, DOUBLE gravityY)

Ustawia globalny wektor grawitacji. Wartość (0, 0) wyłącza grawitację.

Parametry

  • gravityX, gravityY — składowe grawitacji.

Przykłady

EXTWORLD^SETGRAVITY(0,0);

SETLINEARDAMPING

void SETLINEARDAMPING(INTEGER objectId, INTEGER linearDamping)

Ustawia tłumienie liniowe (stopniowe spowalnianie prędkości liniowej) dla obiektu.

Parametry

  • objectId — identyfikator obiektu.
  • linearDamping — wartość tłumienia.

Przykłady

EXTWORLD^SETLINEARDAMPING(1,300);

SETMATERIAL

void SETMATERIAL(INTEGER objectId, STRING material)

Ustawia materiał obiektu. Materiały kontrolują, w jaki sposób obiekty reagują na kontakt (sztywność, sprężystość, tarcie). W skryptach gier spotykana jest m.in. nazwa "TRIGGER", dla której silnik wywołuje na powiązanej animacji sygnał ONSIGNAL^TRIGGER.

Parametry

  • objectId — identyfikator obiektu.
  • material — nazwa materiału.

Przykłady

EXTWORLD^SETMATERIAL(IOBIEKT,"TRIGGER");

SETPOSITION

void SETPOSITION(INTEGER objectId, INTEGER posX, INTEGER posY)

Ustawia bezwzględną pozycję obiektu w świecie fizycznym.

Parametry

  • objectId — identyfikator obiektu.
  • posX, posY — nowa pozycja.

Przykłady

EXTWORLD^SETPOSITION(IOBIEKT,[ANNSZCZUREK^GETCENTERX()+70],[ANNSZCZUREK^GETCENTERY()-1]);
EXTWORLD^SETPOSITION(IRAKIETAOBJ,ANNDODATKI_7^GETPOSITIONX(),ANNDODATKI_7^GETPOSITIONY());

SETVELOCITY

void SETVELOCITY(INTEGER objectId, INTEGER speedX, INTEGER speedY)

Ustawia prędkość obiektu w osiach X i Y.

Parametry

  • objectId — identyfikator obiektu.
  • speedX, speedY — składowe prędkości.

Przykłady

EXTWORLD^SETVELOCITY(1,0,0);
EXTWORLD^SETVELOCITY(IOBIEKT,8,0);

TICK

void TICK()

Wykonuje pojedynczy krok symulacji. Bez wywołania TICK świat fizyczny pozostaje zamrożony — typowo wywoływane z sygnału ONTICK TIMER.

Przykłady

EXTWORLD^TICK();
void UNLINK(INTEGER objectId)

Zrywa powiązanie obiektu z animacją utworzone metodą LINK.

Parametry

  • objectId — identyfikator obiektu.

Przykłady

EXTWORLD^UNLINK(IID);
EXTWORLD^UNLINK(1);

Sygnały

ONINIT

Wywoływany w momencie inicjalizacji obiektu.

ONSIGNAL

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