148 lines
2.8 KiB
Markdown
148 lines
2.8 KiB
Markdown
# PATTERN
|
|
|
|
Plansza złożona z siatki "kafelków" o określonych wymiarach i wielowarstwowej strukturze. Wykorzystywana m.in. w etapach z lataniem na Smokręcie (*Reksio i Wehikuł Czasu*) oraz na miotle (*Reksio i Czarodzieje*) — prawdopodobnie do zapisu mapy przewijającego się poziomu. Analiza tego typu jest w toku.
|
|
|
|
## Pola
|
|
|
|
### GRIDX
|
|
|
|
```
|
|
INTEGER GRIDX
|
|
```
|
|
|
|
Szerokość pojedynczego kafelka siatki w pikselach.
|
|
|
|
### GRIDY
|
|
|
|
```
|
|
INTEGER GRIDY
|
|
```
|
|
|
|
Wysokość pojedynczego kafelka siatki w pikselach.
|
|
|
|
### HEIGHT
|
|
|
|
```
|
|
INTEGER HEIGHT
|
|
```
|
|
|
|
Wysokość planszy.
|
|
|
|
### LAYERS
|
|
|
|
```
|
|
INTEGER LAYERS
|
|
```
|
|
|
|
Liczba warstw planszy.
|
|
|
|
### PRIORITY
|
|
|
|
```
|
|
INTEGER PRIORITY
|
|
```
|
|
|
|
Priorytet rysowania planszy (pozycja w osi Z).
|
|
|
|
### TOCANVAS
|
|
|
|
```
|
|
BOOL TOCANVAS
|
|
```
|
|
|
|
Określa, czy plansza ma być rysowana na kanwie.
|
|
|
|
### VISIBLE
|
|
|
|
```
|
|
BOOL VISIBLE
|
|
```
|
|
|
|
Określa, czy plansza jest widoczna.
|
|
|
|
### WIDTH
|
|
|
|
```
|
|
INTEGER WIDTH
|
|
```
|
|
|
|
Szerokość planszy.
|
|
|
|
## Metody
|
|
|
|
### ADD
|
|
|
|
```
|
|
void ADD(STRING tileId, INTEGER posX, INTEGER posY, STRING animoName, [INTEGER layer])
|
|
```
|
|
|
|
Dodaje na planszę obiekt graficzny.
|
|
|
|
**Parametry**
|
|
|
|
- `tileId` — identyfikator kafelka.
|
|
- `posX`, `posY` — koordynaty kafelka.
|
|
- `animoName` — nazwa zmiennej [`ANIMO`](ANIMO.md) wyświetlanej na kafelku.
|
|
- `layer` — (opcjonalnie) numer warstwy.
|
|
|
|
**Przykłady**
|
|
|
|
```
|
|
PATBOARD^ADD(["E"+_I_],VARX,VARY,VARSTRING0,0);
|
|
PATTERNFOREST^ADD([VARSTRING0+"_"+_I_],VARINT1,VARINT2,VARSTRING1,VARINT3);
|
|
```
|
|
|
|
### GETGRAPHICSAT
|
|
|
|
```
|
|
STRING GETGRAPHICSAT(INTEGER posX, INTEGER posY, BOOL onlyVisible, BOOL ignoreAlpha, INTEGER minZ, [INTEGER maxZ])
|
|
```
|
|
|
|
Zwraca nazwę kafelka pod punktem `(posX, posY)`. Zachowuje się analogicznie do [`CANVAS_OBSERVER.GETGRAPHICSAT`](CANVAS_OBSERVER.md#getgraphicsat), z tą różnicą, że przeszukuje wyłącznie kafelki tej planszy.
|
|
|
|
**Parametry**
|
|
|
|
- `posX`, `posY` — koordynaty sprawdzanego punktu.
|
|
- `onlyVisible` — gdy `TRUE`, brane są pod uwagę tylko widoczne kafelki.
|
|
- `ignoreAlpha` — gdy `TRUE`, sprawdzany jest tylko prostokąt; gdy `FALSE`, test uwzględnia kanał alfa piksela.
|
|
- `minZ` — minimalna warstwa.
|
|
- `maxZ` — (opcjonalnie) maksymalna warstwa.
|
|
|
|
**Zwraca**: [`STRING`](STRING.md) — nazwa kafelka lub `"NULL"`.
|
|
|
|
**Przykłady**
|
|
|
|
```
|
|
PATTERNMASKKRET^GETGRAPHICSAT([ANNKRET^GETCENTERX()+20],ANNKRET^GETCENTERY(),TRUE,FALSE,0,1);
|
|
PATTERNFIRE^GETGRAPHICSAT(ANNCOLLUP^GETCENTERX(),ANNCOLLUP^GETCENTERY(),FALSE,FALSE,0);
|
|
```
|
|
|
|
### MOVE
|
|
|
|
```
|
|
void MOVE(INTEGER offsetX, INTEGER offsetY)
|
|
```
|
|
|
|
Przesuwa planszę o zadane wartości w osiach X i Y.
|
|
|
|
**Parametry**
|
|
|
|
- `offsetX`, `offsetY` — wektor przesunięcia.
|
|
|
|
**Przykłady**
|
|
|
|
```
|
|
PATBOARD^MOVE(0,-3000);
|
|
PATTERNBKG^MOVE(VARINT0,0);
|
|
```
|
|
|
|
## Sygnały
|
|
|
|
### ONINIT
|
|
|
|
Wywoływany w momencie inicjalizacji obiektu.
|
|
|
|
### ONSIGNAL
|
|
|
|
Wywoływany po otrzymaniu sygnału (zobacz [Zdarzenia i sygnały](../engine/events.md#onsignal)).
|