Biblioteca multimídia simples e rápida

Biblioteca multimídia simples e rápida

Em formação
Desenvolvido por

Laurent Gomila

Marco Antognini (porta Mac OS X)
Última versão 2.5.1 (15 de outubro de 2018)
Depósito github.com/SFML/SFML
Escrito em C ++
Sistema operacional Multi plataforma
Meio Ambiente Mac OS X , Windows , GNU / Linux
línguas Multilíngue
Modelo Biblioteca de software
Licença Licença Zlib / png
Local na rede Internet www.sfml-dev.org

SFML é uma interface de programação para a construção de videogames ou programas interativos. Ele é escrito em C ++ , mas também está disponível em várias linguagens como C , D , Python , Ruby , OCaml ou Microsoft .NET . Entre outras coisas, visa oferecer uma alternativa orientada a objetos para SDL .

Também tem a particularidade de fornecer gráficos 2D acelerados utilizando OpenGL internamente, o que permite ao usuário dispensar o gerenciamento de pseudo-3D.

Composto por vários módulos, ele pode ser usado como um sistema mínimo de janelas para fazer interface com o OpenGL ou como uma biblioteca multimídia rica em recursos para criar videogames ou programas interativos.

Módulos

SFML atualmente tem cinco módulos especializados separados. Esses diferentes módulos podem ser usados ​​separadamente (exceto o módulo gráfico que também depende do módulo de janelas), mas todos dependem do módulo do sistema.

Módulo de sistema

O módulo do sistema gerencia principalmente o tempo (relógio, etc.). Também oferece um sistema de thread que permite que várias sequências de instruções sejam executadas em paralelo, por exemplo, para melhorar o desempenho ou criar um gerenciamento de rede eficiente. No entanto, os desenvolvedores recomendam o uso da classe std :: thread presente na biblioteca padrão desde o padrão C ++ 11 .

Módulo de janela

O módulo de janelamento gerencia a criação de janelas e suas características (tamanho, tela cheia, antialiasing , sincronização vertical , framerate ...). Também gerencia as interações com o usuário graças a um sistema de eventos ( teclado , mouse , joystick, etc.). Por fim, pode ser utilizado o SFML como interface com OpenGL, o que por si só não é suficiente para criar um programa completo e requer, entre outras coisas, um sistema de janelas e interação com o usuário.

Módulo gráfico

O módulo gráfico permite desenhar qualquer objeto que seja visível na janela ( retângulos , discos , polígonos , textos ... mas também formas mais complexas graças às tabelas de pontos) e aplicar uma textura a ele . Esses objetos podem ser transformados ( translação , rotação , homotetia ). Também gerencia a câmera 2D e permite a execução de shaders escritos em GLSL .

Módulo de áudio

O módulo de áudio permite reproduzir sons e música nos formatos WAV , OGG / Vorbis ou FLAC (por motivos de licenciamento, o formato MP3 não é compatível). Ele também gerencia efeitos simples, como volume, afinação , espacialização ou reprodução em loop.

Módulo de rede

O módulo de rede permite o uso portátil de sockets , com o protocolo TCP (conectado) ou o protocolo UDP (não conectado) e oferece um sistema de pacotes para serializar facilmente os dados. Ele também permite que você se comunique com um servidor HTTP e transfira arquivos usando o protocolo FTP .

Bonjour Monde

A seguir, um programa simples para obter uma visão geral rápida do SFML 2.0. Este código apenas abre uma janela e exibe o texto "Hello World" em uma imagem exibida em segundo plano.

#include <SFML/Graphics.hpp> int main() { // Crée la fenêtre principale avec comme titre "Hello World" sf::RenderWindow window(sf::VideoMode(800, 600), "Hello World"); // Charge un sprite à afficher sf::Texture texture; if (!texture.loadFromFile("background.jpg")) { return EXIT_FAILURE; } sf::Sprite sprite(texture); // Crée un texte sf::Font font; if (!font.loadFromFile("arial.ttf")) { return EXIT_FAILURE; } sf::Text text("Hello World", font, 18); // Boucle principale while (window.isOpen()) { // Gestion des événements sf::Event event; while (window.pollEvent(event)) { // Fermeture de la fenêtre if (event.type == sf::Event::Closed) { window.close(); } } window.clear(); // Efface l'écran window.draw(sprite); // Affiche le sprite window.draw(text); // Affiche le texte window.display(); // Met à jour la fenêtre } return EXIT_SUCCESS; }

Idiomas suportados

O número indicado fornece a versão em que a biblioteca está disponível.

Links oficiais

links externos

Histórico de versão

  • 1.0 (Julho de 2007)
    • 1,1 (18 de setembro de 2007)
    • 1,2 (16 de janeiro de 2008)
    • 1,3 (22 de junho de 2008)
    • 1,4 (7 de janeiro de 2009)
    • 1,5 (4 de junho de 2009)
    • 1,6 (6 de abril de 2010): Trata-se principalmente de correções de bugs, com a equipe trabalhando principalmente na versão 2.0 da biblioteca.
  • 2.0 (30 de abril de 2013): Revisão completa da biblioteca.
    • 2,1 (27 de julho de 2013): Correção de bug.
    • 2,2 (17 de dezembro de 2014)
    • 2,3 (3 de maio de 2015)
      • 2.3.1 (27 de junho de 2015)
      • 2.3.2 (24 de agosto de 2015)
    • 2.4.1 (21 de junho de 2016)
    • 2.4.2 (8 de fevereiro de 2017)
    • 2,5 (9 de maio de 2018)

Referências

  1. Versão 2.5.1  " ,15 de outubro de 2018(acessado em 16 de outubro de 2018 )
  2. "  Threads (SFML / Learn / Tutorials 2.3)  " , em www.sfml-dev.org
  3. "  Tocando sons e música (SFML / Learn / Tutorials 2.3)  " , em www.sfml-dev.org
  4. SFML 2.1

Veja também

Artigos relacionados

links externos