Tutorial SFML

Neste artigo, abordarei a biblioteca SFML utilizando a linguagem C++. Segurem os cintos e vamos nessa!

[ Hits: 21.682 ]

Por: Thiago Henrique Hüpner em 02/06/2015


Texto



Sim, o SFML já oferece suporte a texto nativamente.

E é muito simples. Segue exemplo:

// Inclui a Biblioteca de Graficos da SFML
#include <SFML/Graphics.hpp>
#include <SFML/Graphics/Text.hpp>
#include <SFML/Graphics/Font.hpp>

int main(void) {

    //Cria uma janela de 400x400
    sf::RenderWindow janela(sf::VideoMode(400,400),"Primeiro Exemplo");

    // Variavel para eventos
    sf::Event evento;

    // Variavel do loop principal
    bool estaRodando = true;

	// Variavel para armazenar a fonte
    sf::Font fonte;
    // As fontes geralmente ficam nessa localizacao "UBUNTU!"
    if(!fonte.loadFromFile("/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttf")) {
        // Erro ao carregar a fonte
        exit(EXIT_FAILURE);
    }

	// Variavel para armazenar o texto e manipular o a fonte
    sf::Text texto;
	// Define a fonte a ser utilizada (foi carregada logo em cima)
    texto.setFont(fonte);
    // Define o Texto
    texto.setString("Hello world");
    // Define a posicao
	texto.setPosition(30,20);
	// Define o tamanho em pixels
    texto.setCharacterSize(24);
    // Define a cor
    texto.setColor(sf::Color::Red);
	// Define alguns estilos para a fonte
	texto.setStyle(sf::Text::Bold | sf::Text::Underlined);

    while(estaRodando) {
        // Enquanto existir eventos coloque na variavel "evento"
        while(janela.pollEvent(evento)) {
            // Caso foi clicado no 'X' da janela
            if (evento.type == sf::Event::Closed)
                estaRodando = false;
        }
        // "Limpa a tela" de branco
        janela.clear(sf::Color(255,255,255));

		// Desenha a fonte
		janela.draw(texto);

        // E mostra a janela
        janela.display();

    }

    // Fecha a janela
    janela.close();

    // Ocorreu tudo bem
    return EXIT_SUCCESS;
}

O que foi feito:
  • Criamos uma variável para armazenar a fonte: sf::Font fonte
  • Carregamos a fonte: fonte.loadFromFile("/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttf")
  • Criamos uma variável para armazenar o texto e manipular a fonte carregada: sf::Text texto
  • Definimos a fonte a ser utilizada: texto.setFont(fonte)
  • Definimos o texto a ser exibido: texto.setString("Hello world");
  • Definimos a posição do texto: texto.setPosition(30,20)
  • Definimos o tamanho em pixels: texto.setCharecterSize(24);
  • Definimos a cor do texto: texto.setColor(sf::Color::Red);
  • Definimos alguns estilos para a fonte: texto.setStyle(sf::Text::Bold | sf::Text::Underlined);
  • Desenhamos a fonte na tela: janela.draw(texto);

Bom, agora já dá pra brincar bem mais. =D

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Primeiro programa
   3. Eventos
   4. Primeiro desenho 2D
   5. Texto
   6. Texturas e Sprites
Outros artigos deste autor

Tutorial OpenGL v3.0

Visual Studio no Linux

Tutorial OpenGL v2.0

Tutorial OpenGL

Ubuntu/Debian/Kali Linux e outros no Android

Leitura recomendada

SDL - Ótimo para criação de jogos

openCertiface: Biométrica Facial em nuvem baseada em software livre

A duplicação do buffer de saída na chamada de sistema fork() do Linux

Ponteiros - Saindo de Pesadelos

Linguagem C - Funções Variádicas

  
Comentários
[1] Comentário enviado por fabio em 02/06/2015 - 18:27h

Belo artigo, parabéns!

[2] Comentário enviado por Thihup em 02/06/2015 - 18:59h


[1] Comentário enviado por fabio em 02/06/2015 - 18:27h

Belo artigo, parabéns!


Muito Obrigado =D

Gostei desse formato de artigo, vou começar a migrar meus artigos para esse formato, fica mais claro e mais simples =D

Valew Fábio!

[3] Comentário enviado por removido em 03/06/2015 - 05:40h

Por um instante pensei que o ML final era de Markup Language. Não conhecia.

Interessante. Parabéns.
--
Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden

[4] Comentário enviado por Thihup em 03/06/2015 - 08:04h


[3] Comentário enviado por listeiro_037 em 03/06/2015 - 05:40h

Por um instante pensei que o ML final era de Markup Language. Não conhecia.

Interessante. Parabéns.
--
Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


Opa Fera, Valew!

Não tinha outro nome para colocar, dai ficou "Tutorial SFML", mas garanto que os próximos não serão tão "estranhos" (sei lá, não sou do futuro...)

Valew!!!

[5] Comentário enviado por edsonmarcks em 09/06/2015 - 13:57h

Cara parabéns! pelo tutorial bem claro. Vou até me arriscar no C++ kkkk.

[6] Comentário enviado por Thihup em 09/06/2015 - 17:19h


[5] Comentário enviado por edsonmarcks em 09/06/2015 - 13:57h

Cara parabéns! pelo tutorial bem claro. Vou até me arriscar no C++ kkkk.


Valew Fera.

Arrisque, C++ é bom mesmo.

Se quiser me adicionar no Skype: thihup

[]'s

T+

[7] Comentário enviado por CiroboyBR em 09/02/2016 - 17:58h

Muito bom seu artigo, compilou todos os exemplos sem nenhum problema.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts