410 lines
7.6 KiB
Markdown
410 lines
7.6 KiB
Markdown
# IMAGE
|
||
|
||
Statyczny obraz wyświetlany na scenie. Obsługuje pozycję, przezroczystość, przycinanie obszaru rysowania, dynamiczne ładowanie pliku oraz monitorowanie kolizji z innymi obiektami.
|
||
|
||
## Pola
|
||
|
||
### FILENAME
|
||
|
||
```
|
||
STRING FILENAME
|
||
```
|
||
|
||
Nazwa pliku `.IMG` z obrazem. Pole odczytywane przy inicjalizacji zmiennej; może być również nadpisane przez metodę [`LOAD`](#load).
|
||
|
||
### MONITORCOLLISION
|
||
|
||
```
|
||
BOOL MONITORCOLLISION
|
||
```
|
||
|
||
Określa, czy obraz uczestniczy w detekcji kolizji z innymi obiektami. Modyfikowane przez metody [`MONITORCOLLISION`](#monitorcollision-1) i [`REMOVEMONITORCOLLISION`](#removemonitorcollision).
|
||
|
||
### MONITORCOLLISIONALPHA
|
||
|
||
```
|
||
BOOL MONITORCOLLISIONALPHA
|
||
```
|
||
|
||
Określa, czy w detekcji kolizji uwzględniany jest kanał przezroczystości obrazu — kolizja nie zachodzi w pikselach całkowicie przezroczystych.
|
||
|
||
### PRIORITY
|
||
|
||
```
|
||
INTEGER PRIORITY
|
||
```
|
||
|
||
Priorytet renderowania (`Z`) względem innych obiektów na scenie.
|
||
|
||
### VISIBLE
|
||
|
||
```
|
||
BOOL VISIBLE
|
||
```
|
||
|
||
Widoczność obrazu. Modyfikowana metodami [`SHOW`](#show) i [`HIDE`](#hide).
|
||
|
||
## Metody
|
||
|
||
### GETALPHA
|
||
|
||
```
|
||
INTEGER GETALPHA(INTEGER posX, INTEGER posY)
|
||
```
|
||
|
||
Zwraca wartość kanału alfa piksela o podanych współrzędnych (w skali `0–255`, gdzie `255` to pełna nieprzezroczystość).
|
||
|
||
**Parametry**
|
||
|
||
- `posX` — współrzędna X piksela.
|
||
- `posY` — współrzędna Y piksela.
|
||
|
||
**Zwraca**: wartość alfa piksela.
|
||
|
||
**Przykłady**
|
||
|
||
```
|
||
IMGLEVEL^GETALPHA(VARX, VARY);
|
||
IMGALPHA^GETALPHA(EXPMASKX, EXPMASKY);
|
||
```
|
||
|
||
### GETCENTERX
|
||
|
||
```
|
||
INTEGER GETCENTERX()
|
||
```
|
||
|
||
Zwraca współrzędną X środka prostokąta zajmowanego przez obraz.
|
||
|
||
**Zwraca**: środek X.
|
||
|
||
### GETCENTERY
|
||
|
||
```
|
||
INTEGER GETCENTERY()
|
||
```
|
||
|
||
Zwraca współrzędną Y środka prostokąta zajmowanego przez obraz.
|
||
|
||
**Zwraca**: środek Y.
|
||
|
||
### GETHEIGHT
|
||
|
||
```
|
||
INTEGER GETHEIGHT()
|
||
```
|
||
|
||
Zwraca wysokość obrazu w pikselach.
|
||
|
||
**Zwraca**: wysokość obrazu.
|
||
|
||
**Przykłady**
|
||
|
||
```
|
||
IMGLINA^GETHEIGHT();
|
||
```
|
||
|
||
### GETPIXEL
|
||
|
||
```
|
||
INTEGER GETPIXEL(INTEGER posX, INTEGER posY)
|
||
```
|
||
|
||
Zwraca wartość piksela na podanych współrzędnych jako liczbę całkowitą zakodowaną zgodnie z głębią koloru obrazu: dla 16-bitowych obrazów — RGB565, dla 15-bitowych — RGB555.
|
||
|
||
**Parametry**
|
||
|
||
- `posX` — współrzędna X piksela.
|
||
- `posY` — współrzędna Y piksela.
|
||
|
||
**Zwraca**: zakodowana wartość koloru piksela.
|
||
|
||
**Przykłady**
|
||
|
||
```
|
||
IMGMASK^GETPIXEL(IKONNEWX, IKONNEWY);
|
||
```
|
||
|
||
### GETPOSITIONX
|
||
|
||
```
|
||
INTEGER GETPOSITIONX()
|
||
```
|
||
|
||
Zwraca współrzędną X lewego górnego rogu obrazu.
|
||
|
||
**Zwraca**: pozycja X.
|
||
|
||
### GETPOSITIONY
|
||
|
||
```
|
||
INTEGER GETPOSITIONY()
|
||
```
|
||
|
||
Zwraca współrzędną Y lewego górnego rogu obrazu.
|
||
|
||
**Zwraca**: pozycja Y.
|
||
|
||
### GETWIDTH
|
||
|
||
```
|
||
INTEGER GETWIDTH()
|
||
```
|
||
|
||
Zwraca szerokość obrazu w pikselach.
|
||
|
||
**Zwraca**: szerokość obrazu.
|
||
|
||
**Przykłady**
|
||
|
||
```
|
||
IMGPASEK^GETWIDTH();
|
||
```
|
||
|
||
### HIDE
|
||
|
||
```
|
||
void HIDE()
|
||
```
|
||
|
||
Ukrywa obraz (ustawia [`VISIBLE`](#visible) na `FALSE`).
|
||
|
||
**Przykłady**
|
||
|
||
```
|
||
G_IMGPAGE^HIDE();
|
||
```
|
||
|
||
### INVALIDATE
|
||
|
||
```
|
||
void INVALIDATE()
|
||
```
|
||
|
||
Stosuje oczekującą wartość przezroczystości ustawioną metodą [`SETOPACITY`](#setopacity). Bez wywołania `INVALIDATE` zmiana przezroczystości nie staje się widoczna.
|
||
|
||
**Przykłady**
|
||
|
||
```
|
||
G_IMGPAGE^INVALIDATE();
|
||
```
|
||
|
||
### ISAT
|
||
|
||
```
|
||
BOOL ISAT(INTEGER posX, INTEGER posY)
|
||
```
|
||
|
||
Sprawdza, czy punkt o podanych współrzędnych znajduje się wewnątrz prostokąta zajmowanego przez obraz.
|
||
|
||
**Parametry**
|
||
|
||
- `posX` — współrzędna X punktu.
|
||
- `posY` — współrzędna Y punktu.
|
||
|
||
**Zwraca**: [`BOOL`](BOOL.md) — `TRUE`, jeżeli punkt jest wewnątrz prostokąta obrazu.
|
||
|
||
### LOAD
|
||
|
||
```
|
||
void LOAD(STRING path)
|
||
```
|
||
|
||
Wczytuje obraz z pliku, zastępując dotychczasową zawartość. Obraz po wczytaniu jest automatycznie pokazywany ([`VISIBLE`](#visible) ustawiane na `TRUE`).
|
||
|
||
**Parametry**
|
||
|
||
- `path` — ścieżka pliku `.IMG` w VFS gry.
|
||
|
||
**Przykłady**
|
||
|
||
```
|
||
G_IMGPAGE^LOAD("$COMMON\PAGE.IMG");
|
||
IMGTLO^LOAD(VARSTEMP0);
|
||
IMGSCR^LOAD(["$COMMON\SAVE_BD\BD_SCR"+VARIACTIVESLOT+".IMG"]);
|
||
```
|
||
|
||
### MERGEALPHA
|
||
|
||
```
|
||
void MERGEALPHA(INTEGER posX, INTEGER posY, STRING maskName)
|
||
```
|
||
|
||
Wiąże z obrazem maskę alfa pochodzącą z innego obrazu. Maska jest pozycjonowana w punkcie `(posX, posY)` i modyfikuje wynikową przezroczystość bieżącego obrazu w obszarze pokrycia.
|
||
|
||
**Parametry**
|
||
|
||
- `posX` — współrzędna X pozycji maski.
|
||
- `posY` — współrzędna Y pozycji maski.
|
||
- `maskName` — nazwa zmiennej typu `IMAGE`, której kanał alfa zostanie użyty jako maska.
|
||
|
||
**Przykłady**
|
||
|
||
```
|
||
IMGDARK^MERGEALPHA([ANNPLAYER0^GETCENTERX()-75], [ANNPLAYER0^GETCENTERY()-75], "IMGKOLKO");
|
||
IMG_WODA^MERGEALPHA(800, VARI_Y, "IMG_LIGHT");
|
||
```
|
||
|
||
### MONITORCOLLISION {#monitorcollision-1}
|
||
|
||
```
|
||
void MONITORCOLLISION()
|
||
```
|
||
|
||
Włącza monitorowanie kolizji obrazu z innymi obiektami. Po wywołaniu pole [`MONITORCOLLISION`](#monitorcollision) ma wartość `TRUE`, a obraz jest rejestrowany w mechanizmie detekcji kolizji.
|
||
|
||
### MONITORCOLLISIONALPHA {#monitorcollisionalpha-1}
|
||
|
||
```
|
||
void MONITORCOLLISIONALPHA()
|
||
```
|
||
|
||
Włącza uwzględnianie kanału alfa przy detekcji kolizji. Po wywołaniu pole [`MONITORCOLLISIONALPHA`](#monitorcollisionalpha) ma wartość `TRUE`.
|
||
|
||
### MOVE
|
||
|
||
```
|
||
void MOVE(INTEGER offsetX, INTEGER offsetY)
|
||
```
|
||
|
||
Przesuwa obraz o zadane wartości względem aktualnej pozycji.
|
||
|
||
**Parametry**
|
||
|
||
- `offsetX` — przesunięcie w osi X.
|
||
- `offsetY` — przesunięcie w osi Y.
|
||
|
||
**Przykłady**
|
||
|
||
```
|
||
IMGBKGA^MOVE(0, 800);
|
||
IMGLINA^MOVE(0, IMOVDY);
|
||
IMRECT^MOVE(IGSX, 0);
|
||
```
|
||
|
||
### REMOVEMONITORCOLLISION
|
||
|
||
```
|
||
void REMOVEMONITORCOLLISION()
|
||
```
|
||
|
||
Wyłącza monitorowanie kolizji włączone wcześniej przez [`MONITORCOLLISION`](#monitorcollision-1).
|
||
|
||
### REMOVEMONITORCOLLISIONALPHA
|
||
|
||
```
|
||
void REMOVEMONITORCOLLISIONALPHA()
|
||
```
|
||
|
||
Wyłącza uwzględnianie kanału alfa przy detekcji kolizji, włączone wcześniej przez [`MONITORCOLLISIONALPHA`](#monitorcollisionalpha-1).
|
||
|
||
### SETCLIPPING
|
||
|
||
```
|
||
void SETCLIPPING(INTEGER xLeft, INTEGER yBottom, INTEGER xRight, INTEGER yTop)
|
||
```
|
||
|
||
Ogranicza obszar rysowania obrazu do prostokąta o podanych krawędziach. Piksele poza prostokątem nie są rysowane.
|
||
|
||
**Parametry**
|
||
|
||
- `xLeft, yBottom, xRight, yTop` — współrzędne prostokąta przycinania.
|
||
|
||
**Przykłady**
|
||
|
||
```
|
||
G_IMGPAGE^SETCLIPPING(0, 0, G_IPAGE, 600);
|
||
```
|
||
|
||
### SETOPACITY
|
||
|
||
```
|
||
void SETOPACITY(INTEGER opacity)
|
||
```
|
||
|
||
Ustawia oczekującą wartość przezroczystości obrazu w skali `0–255` (`0` — pełna przezroczystość, `255` — pełna nieprzezroczystość). Wartości spoza zakresu są przycinane do jego granic. **Zmiana nie staje się widoczna, dopóki nie zostanie wywołana metoda [`INVALIDATE`](#invalidate).**
|
||
|
||
**Parametry**
|
||
|
||
- `opacity` — wartość kanału alfa (`0–255`).
|
||
|
||
**Przykłady**
|
||
|
||
```
|
||
AIDEMMEDIA^SETOPACITY(VARNR);
|
||
IMGBRIDGE^SETOPACITY(200);
|
||
```
|
||
|
||
### SETPOSITION
|
||
|
||
```
|
||
void SETPOSITION(INTEGER posX, INTEGER posY)
|
||
```
|
||
|
||
Ustawia bezwzględną pozycję lewego górnego rogu obrazu.
|
||
|
||
**Parametry**
|
||
|
||
- `posX` — współrzędna X.
|
||
- `posY` — współrzędna Y.
|
||
|
||
**Przykłady**
|
||
|
||
```
|
||
IMGENERGIA^SETPOSITION([795-VARENERGIA], 78);
|
||
IMGKOLKO^SETPOSITION(-500, -500);
|
||
IMGNAKLADKA^SETPOSITION(VARIPOSX, 0);
|
||
```
|
||
|
||
### SETPRIORITY
|
||
|
||
```
|
||
void SETPRIORITY(INTEGER priority)
|
||
```
|
||
|
||
Ustawia priorytet renderowania obrazu.
|
||
|
||
**Parametry**
|
||
|
||
- `priority` — nowa wartość pola [`PRIORITY`](#priority).
|
||
|
||
**Przykłady**
|
||
|
||
```
|
||
G_IMGPAGE^SETPRIORITY(3000);
|
||
AIDEMMEDIA^SETPRIORITY(3);
|
||
```
|
||
|
||
### SHOW
|
||
|
||
```
|
||
void SHOW()
|
||
```
|
||
|
||
Pokazuje obraz (ustawia [`VISIBLE`](#visible) na `TRUE`).
|
||
|
||
**Przykłady**
|
||
|
||
```
|
||
G_IMGPAGE^SHOW();
|
||
REX^SHOW();
|
||
```
|
||
|
||
## Sygnały
|
||
|
||
### ONCLICK
|
||
|
||
Wywoływany po kliknięciu w obraz.
|
||
|
||
### ONFOCUSON
|
||
|
||
Wywoływany po najechaniu kursorem na obraz.
|
||
|
||
### ONFOCUSOFF
|
||
|
||
Wywoływany po zjechaniu kursorem z obrazu.
|
||
|
||
### ONINIT
|
||
|
||
Wywoływany w momencie inicjalizacji obiektu.
|