Fiche mémo SFML 2.x & C++
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 : Page téléchargements.
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.