Ir al contenido
Descargar

Dibujo

Por defecto, cada instancia dibuja su propio sprite. Para dibujar otras cosas, sobrescribe onRender (en el mundo, con cámara) u onRenderGui (por encima de todo, en coordenadas de la pantalla) y usa las funciones de abajo dentro de esos eventos.

Función Qué hace Ejemplo
void drawSelf() Dibuja el propio sprite en el cuadro actual, con la escala, el ángulo y la posición de la instancia. 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) Dibuja cualquier sprite, en cualquier posición. alpha va de 0 (invisible) a 1. drawSprite("coracao", 0, 4, 24);
void drawRect(float rx, float ry, float rw, float rh, Color color, bool filled = true) Dibuja un rectángulo lleno o solo el contorno. drawRect(4, 30, 50, 4, colors::red);
void drawLine(float x1, float y1, float x2, float y2, Color color) Dibuja una línea. drawLine(x, y, mouseX(), mouseY(), colors::white);
void drawText(std::string_view text, float tx, float ty, Color color = colors::white) Escribe un texto, con acentos. Cada letra mide 8 píxeles de ancho. drawText("Pausa", 140, 80);
void drawText(std::string_view text, float tx, float ty, Color color, int scale) Lo mismo, ampliado: scale 2 da letras de 16 píxeles. 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) Escribe con una fuente del proyecto (un .ttf importado en Recursos), con letras de size píxeles. drawText("Fim", 120, 80, colors::white, "Titulos", 24);

Para menús, marcadores y pantallas, mira la Interfaz: los textos se ponen en el editor y el código solo cambia lo que muestran.

Color{r, g, b, a} con valores de 0 a 255 (a es la opacidad). Colores listos en colors:::

Nombre 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}
  • Quien decide el orden es la capa: la de arriba de la lista se dibuja delante. Cada capa tiene un depth, y el mayor queda por detrás.
  • La instancia nace con el depth de su capa. En el código, setLayer("Frente") la cambia de capa; depth = 5; también funciona.
  • Todo lo que se dibuja en el onRenderGui queda por encima de todo lo del onRender.
  • Una instancia con visible = false no dibuja nada.

Mira Texto en pantalla y Animar un sprite.