Desenho
Por padrão, cada instância desenha o próprio sprite. Para desenhar outras coisas, sobrescreva onRender (no mundo, com câmera) ou onRenderGui (por cima de tudo, em coordenadas da tela) e use as funções abaixo dentro desses eventos.
| Função | O que faz | Exemplo |
|---|---|---|
void drawSelf() |
Desenha o próprio sprite no quadro atual, com escala, ângulo e posição da instância. | drawSelf(); |
void drawSprite(std::string_view spriteName, float frameIndex, float atX, float atY, float sx = 1, float sy = 1, float rotation = 0, float alpha = 1) |
Desenha qualquer sprite, em qualquer posição. alpha vai de 0 (invisível) a 1. |
drawSprite("coracao", 0, 4, 24); |
void drawRect(float rx, float ry, float rw, float rh, Color color, bool filled = true) |
Desenha um retângulo cheio ou só o contorno. | drawRect(4, 30, 50, 4, colors::red); |
void drawLine(float x1, float y1, float x2, float y2, Color color) |
Desenha uma linha. | drawLine(x, y, mouseX(), mouseY(), colors::white); |
void drawText(std::string_view text, float tx, float ty, Color color = colors::white) |
Escreve um texto, com acentos. Cada letra tem 8 pixels de largura. | drawText("Pausa", 140, 80); |
void drawText(std::string_view text, float tx, float ty, Color color, int scale) |
O mesmo, ampliado: scale 2 dá letras de 16 pixels. |
drawText("Pausa", 120, 80, colors::white, 2); |
void drawText(std::string_view text, float tx, float ty, Color color, std::string_view font, int size) |
Escreve com uma fonte do projeto (um .ttf importado em Recursos), com letras de size pixels. |
drawText("Fim", 120, 80, colors::white, "Titulos", 24); |
Para menus, placares e telas, veja a Interface: os textos são postos no editor e o código só muda o que eles mostram.
Color{r, g, b, a} com valores de 0 a 255 (a é a opacidade). Cores prontas em colors:::
| Nome | Valor |
|---|---|
colors::white |
{255, 255, 255, 255} |
colors::black |
{0, 0, 0, 255} |
colors::red |
{230, 60, 60, 255} |
colors::green |
{60, 220, 90, 255} |
colors::yellow |
{255, 220, 60, 255} |
colors::magenta |
{255, 0, 255, 255} |
Ordem de desenho
Seção intitulada “Ordem de desenho”- Quem decide a ordem é a camada: a de cima da lista é desenhada na frente. Cada camada tem um
depth, e o maior fica por trás. - A instância nasce com o depth da camada dela. No código,
setLayer("Frente")a muda de camada;depth = 5;também funciona. - Tudo que é desenhado no
onRenderGuifica por cima de tudo doonRender. - Uma instância com
visible = falsenão desenha nada.
Veja Texto na tela e Animar um sprite.
