Tutorial SFML
Neste artigo, abordarei a biblioteca SFML utilizando a linguagem C++. Segurem os cintos e vamos nessa!
Parte 4: 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:
Bom, o exemplo deve estar bem claro, mas para quem ainda está com dúvidas:
Se fosse só isso, já estaria bom. Mas, podemos colocar "círculos" dentro do círculo:
E agora, podemos misturar os eventos com os círculos. Brinquem um pouco e depois avancem.
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.