Tutorial SFML

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

[ Hits: 21.672 ]

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


Primeiro desenho 2D



Agora que já sabemos eventos, vamos desenhar um pouco.

O SFML já oferece, logo de cara, um sistema para desenhar círculos de forma muito simples. Segue um exemplo:

// Inclui a Biblioteca de Graficos da SFML
#include <SFML/Graphics.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;

	// Cria um circulo com 20f de raio
	sf::CircleShape circulo(20);

	// Define a posicao do Circulo
	circulo.setPosition(10,20);

	// Define a cor para vermelho
	circulo.setFillColor(sf::Color(255,0,0));

	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 o Circulo na Janela
		janela.draw(circulo);

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

	}

	// Fecha a janela
	janela.close();

	// Ocorreu tudo bem
	return EXIT_SUCCESS;
}

Bom, o exemplo deve estar bem claro, mas para quem ainda está com dúvidas:
  • Criamos uma variável do tipo sf::CircleShape com 20floats de raio: sf::CircleShape circulo(20);
  • Definimos a posição do círculo: circulo.setPosition(10,20);
  • Definimos a cor do Círculo: circulo.setFillColor(sf::Color(255,0,0));
  • Desenhamos o Círculo na Janela: janela.draw(circulo);

Se fosse só isso, já estaria bom. Mas, podemos colocar "círculos" dentro do círculo:

// Definimos o tamanho da Espessura do Linha
circulo.setOutlineThickness(10);
// Definimos a Cor
circulo.setOutlineColor(sf::Color(0, 255, 0));

E agora, podemos misturar os eventos com os círculos. Brinquem um pouco e depois avancem.

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 v2.0

Tutorial OpenGL v3.0

Visual Studio no Linux

Tutorial OpenGL

Ubuntu/Debian/Kali Linux e outros no Android

Leitura recomendada

Programação com números inteiros gigantes

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

OneAPI: A plataforma da Intel para facilitar o desenvolvimento com chips Intel, AMD, ARM, NVIDIA POWER e FPGA

O Produtor e o Consumidor

Android NDK: Desmistificando o acesso a códigos nativos em C

  
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