Texto na tela
Você quer mostrar o placar, as vidas ou uma mensagem que fica sempre no mesmo lugar da tela.
Crie um objeto sem sprite (por exemplo Hud), coloque-o na room e desenhe no 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);Como funciona
Seção intitulada “Como funciona”onRenderGuidesenha por cima de tudo, em coordenadas da tela: (0, 0) é o canto de cima à esquerda, mesmo com a câmera andando.drawText(texto, x, y)escreve o texto. A cor é opcional:colors::white(padrão),colors::yellow,colors::red,colors::green,colors::blackouColor{r, g, b, a}.std::formatmonta textos com números:std::format("VIDAS {}", 3)viraVIDAS 3.- Cada letra tem 8 pixels de largura. Acentos e cedilha funcionam:
drawText("Pontuação", 4, 4).
Variações
Seção intitulada “Variações”Centralizar. O texto ocupa letras × 8 pixels:
const std::string msg = "FIM DE JOGO";drawText(msg, (roomWidth() - msg.size() * 8.0f) / 2.0f, 80);Letras maiores e outra fonte. Um número depois da cor amplia a fonte da Brasa (2 = letras de 16 pixels). Com o nome de uma fonte importada em Recursos e o tamanho em pixels, o texto sai nessa fonte:
drawText("Pontuação", 4, 4, colors::white, 2);drawText("Fim de jogo", 4, 30, colors::yellow, "Titulos", 24);Números com zeros na frente: std::format("{:05}", 300) vira 00300.
Retângulos e linhas, para barras de vida e molduras:
drawRect(4, 30, 50, 4, colors::red); // barra cheiadrawRect(4, 30, 50, 4, colors::white, false); // só o contornoVeja também
Seção intitulada “Veja também”- Desenho.
- 5. Pontos e vidas, no tutorial.
