Fiche mémo SFML 2.x & C++

  • admin 

La SFML (Simple & Fast Multimedia Library) est un framework très simple à utiliser qui vous permettra de développer des jeux vidéo en 2D avec plusieurs langages, notamment C++ qui est le langage le plus couramment utilisé avec la SFML. L’objectif de cette fiche mémo SFML (cheat sheet) est de vous faire un récapitulatif des principales fonctionnalités (Afficher une image, une fenêtre, un texte, jouer un son, la boucle de jeu…) avec des bouts de codes très simples. Vous pourrez ensuite utiliser cette cheat sheet SFML / C++ pour vous lancer dans vos projets.

Fiche mémo SFML / C++ (Cheat sheet)

Inclure la SFML dans un projet

#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp> 

Pour utiliser la SFML il faut bien sûr lier les .lib et les includes à votre projet. J’ai publié un tuto sur YouTube à propos de cela.

Créer une fenêtre avec la SFML

sf::RenderWindow window(sf::VideoMode(800, 600), "Fenêtre SFML");

Charger un sprite avec la SFML

sf::Texture texture;
  if (!texture.loadFromFile("image.jpg"))
      return EXIT_FAILURE;
  sf::Sprite sprite(texture); 

Créer un texte à afficher

sf::Font font;
if (!font.loadFromFile("arial.ttf"))
	return EXIT_FAILURE;
sf::Text</a> text("Texte SFML", font, 50)

Charger une musique avec la SFML

sf::Music music;
if (!music.openFromFile("musique.ogg"))
	return EXIT_FAILURE;

Jouer la musique avec la SFML

music.play();

Exemple de boucle de jeu avec gestion de la fenêtre et affichage des ressources chargées

while (window.isOpen())
 {
     // Gestion des événements
     sf::Event event;
     while (window.pollEvent(event))
     {
         // Fermer la fenêtre
         if (event.type == sf::Event::Closed)
             window.close();
     }
     // Nettoyer l’écran
     window.clear();
     // Dessiner notre sprite
     window.draw(sprite);
     // Afficher le texte
     window.draw(text);
     // Mise à jour de la fenêtre
     window.display();
 }
 return EXIT_SUCCESS;

L’exemple complet

#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>

int main()
{
sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window");

sf::Texture texture;
if (!texture.loadFromFile("image.jpg"))
    return EXIT_FAILURE;

sf::Sprite sprite(texture);
sf::Font font;

if (!font.loadFromFile("arial.ttf"))
    return EXIT_FAILURE;

sf::Text text("Texte SFML", font, 50);

sf::Music music;
if (!music.openFromFile("music.ogg"))
    return EXIT_FAILURE;
music.play();

while (window.isOpen())
{
    sf::Event event;
    while (window.pollEvent(event))
    {
        if (event.type == sf::Event::Closed)
        window.close();
    }
    window.clear();
    window.draw(sprite);
    window.draw(text);
    window.display();
}
return EXIT_SUCCESS;
}

Télécharger la fiche mémo au format PDF

Vous pouvez télécharger la fiche mémo au format PDF ainsi qu’un projet SFML / Visual Studio / C++ d’exemple sur la page des téléchargements : https://formation-facile.fr/telechargements/

Voilà pour cette petite fiche mémo, j’espère qu’elle vous aidera à vous lancer avec la SFML. Pour aller plus loin avec la SFML & C++ je vous invite à suivre ma formation complète sur Udemy.

Vignette formation sfml udemy
Vignette cours SFML & C++ Udemy
Étiquettes: