SFML - Partie 1 - Installation et premier programme avec Qt Creator

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.

Introduction

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 :

Paquets

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

Configurer Qt

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 :

Décocher l'option 'shadow build' dans Qt Creator

De la même façon, vous pouvez décocher l'option “Run in terminal” :

Décocher l'option 'Run in terminal' dans Qt Creator

Premier programme

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 :

Premier programme avec SFML

Téléchargements

Le projet Qt pour ce projet peut être téléchargé ci-dessous :

Voir aussi


Dernière mise à jour : 15/03/2021