Ir al contenido
Descargar

Texto en pantalla

Quieres mostrar el marcador, las vidas o un mensaje que quede siempre en el mismo lugar de la pantalla.

Crea un objeto sin sprite (por ejemplo Hud), colócalo en la room y dibuja en el onRenderGui:

#include <brasa/brasa.hpp>
#include <format>
using namespace brasa;
class Hud : public Entity {
public:
void onRenderGui() override {
drawText("PRIMEIRA FASE", 4, 4);
drawText(std::format("PONTOS {}", 1500), 4, 14, colors::yellow);
}
};
BRASA_ENTITY(Hud);
  • onRenderGui dibuja por encima de todo, en coordenadas de la pantalla: (0, 0) es la esquina superior izquierda, incluso con la cámara en movimiento.
  • drawText(texto, x, y) escribe el texto. El color es opcional: colors::white (por defecto), colors::yellow, colors::red, colors::green, colors::black o Color{r, g, b, a}.
  • std::format arma textos con números: std::format("VIDAS {}", 3) se convierte en VIDAS 3.
  • Cada letra mide 8 píxeles de ancho. Los acentos y la eñe funcionan: drawText("Pontuação", 4, 4).

Centrar. El texto ocupa letras × 8 píxeles:

const std::string msg = "FIM DE JOGO";
drawText(msg, (roomWidth() - msg.size() * 8.0f) / 2.0f, 80);

Letras más grandes y otra fuente. Un número después del color amplía la fuente de Brasa (2 = letras de 16 píxeles). Con el nombre de una fuente importada en Recursos y el tamaño en píxeles, el texto sale en esa fuente:

drawText("Pontuação", 4, 4, colors::white, 2);
drawText("Fim de jogo", 4, 30, colors::yellow, "Titulos", 24);

Números con ceros delante: std::format("{:05}", 300) se convierte en 00300.

Rectángulos y líneas, para barras de vida y marcos:

drawRect(4, 30, 50, 4, colors::red); // barra llena
drawRect(4, 30, 50, 4, colors::white, false); // solo el contorno