Abrir uma janela
Usaremos a classe sf::Window. Veja como é simples:
#include <SFML/Window.hpp>
int main()
{
sf::Window window(sf::VideoMode(800, 600), "Titulo");
return 0;
}
Bem, definimos o tamanho da janela (sem contar a barra de titulo e as bordas) e o seu título.
Você pode passar um terceiro argumento, que é uma combinação de estilos.
- sf::Style::None: sem decoração, não combina com outros estilos
- sf::Style::Titlebar: barra de titulos
- sf::Style::Resize: redimensionável e botão maximizar
- sf::Style::Close: botão fechar
- sf::Style::Fullscreen: tela cheia, não combina com outros estilos
- sf::Style::Default: estilo padrão, que é um atalho para Titlebar | Resize | Close
Há também um quarto argumento (opcional), que define opções específicas do OpenGL (tutorial).
Se você quiser criar a janela depois de já tê-la instanciado, ou então recriá-la com um modo de vídeo ou título diferente, você pode usar a função
create
, que usa os mesmos argumentos que o construtor.#include <SFML/Window.hpp>
int main()
{
sf::Window window;
window.create(sf::VideoMode(600, 600), "Janela");
return 0;
}
Modificando a janela:
// Mudar a posição
window.setPosition(sf::Vector2i(10, 50));
//Mudar o tamanho
window.setSize(sf::Vector2u(640, 480));
//Mudar o título
window.setTitle("SFML window");
Controlando a taxa de atualização:
window.setVerticalSyncEnabled(true); //assim sua aplicação vai desenhar na mesma frequência que o monitor (geralmente 60 vezes por segundo)
ou
window.setFramerateLimit(30); //assim você define uma taxa máxima em vez de automatizar
Pegando dados:
//Obter o tamanho
sf::Vector2u size = window.getSize();
unsigned int width = size.x;
unsigned int height = size.y;
O que mais você poderia saber?
- Você pode criar várias janelas e manejá-las junta ou separadamente.
- Não é suportado o uso de vários monitores.
Nenhum comentário:
Postar um comentário