Cet article appartient à une série de tutoriels dédiés à SFML. Le lecteur est invité à se référer aux autres sections de ce tutoriel en suivant ce lien : SFML tutoriel.
Cette page présente comment installer SFML sous Linux et comment compiler un premier programme avec Qt Creator. Cette page a été préparée avec les version suivantes :
Cette vidéo vous donne un aperçu du résultat :
Commencer, si nécessaire, par installer Qt Creator en suivant l'un des tutoriels suivant :
Installer le paquet SFML pour le développement :
sudo apt install libsfml-dev
Lancer Qt et créer un nouveau projet en mode console. Pour permettre à votre application de compiler avec les bibliothèques SFML, ajouter les lignes suivantes au projet (fichier .pro) :
LIBS += -lsfml-audio
LIBS += -lsfml-graphics
LIBS += -lsfml-network
LIBS += -lsfml-window
LIBS += -lsfml-system
Pour éviter les problèmes avec les répertoires, décocher “Shadow build” dans les paramètres du projet :
De la même façon, vous pouvez décocher l'option “Run in terminal” :
Le programme suivant est en quelques sortes le "Hello world" de SFML. Ce programme crée un fenêtre de 200 x 200 pixels et dessine un cercle à l'intérieur. Les explications détaillées se trouvent dans les commentaires.
/*!
* \file main.cpp
* \brief First example of SFML (https://lucidar.me/en/sfml/sfml-part-1-installation-and-first-program/)
* \author Philippe Lucidarme (from official SFML tutorial)
* \version 1.0
* \date 10/07/2018
*/
// SFML libraries
#include <SFML/Graphics.hpp>
int main()
{
// Create a new 200x200 pixels window with a title
sf::RenderWindow window(sf::VideoMode(200, 200), "SFML tutorial : part 1");
// Create a green circle with a radius of 100. pixels
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Green);
// Main loop, while the window is open
while (window.isOpen())
{
// Event loop
sf::Event event;
while (window.pollEvent(event))
{
// If close is requested by user, close the window
if (event.type == sf::Event::Closed) window.close();
}
// Display sequence : clear screen, draw circle and update display
window.clear();
window.draw(shape);
window.display();
}
// End of application
return 0;
}
Le programme précédent devrait afficher la fenêtre suivante :
Le projet Qt pour ce projet peut être téléchargé ci-dessous :