Démarrer avec sfml
Programme SFML de base
Si tout a été configuré correctement, l’extrait de code suivant affichera une fenêtre intitulée “SFML fonctionne !” avec un cercle vert :
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Green);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}
##Installation - Linux Il existe différentes approches pour l’installation de SFML sous Linux :
- Installez-le directement depuis le référentiel de packages de votre distribution
- Récupérez le code source, compilez-le et installez-le
- Téléchargez le SDK précompilé et copiez manuellement les fichiers
L’option 1 est la préférée ; si la version de SFML que vous souhaitez installer est disponible dans le dépôt officiel, installez-la à l’aide de votre gestionnaire de paquets. Par exemple, sur Debian, vous feriez :
sudo apt-get install libsfml-dev
L’option 2 nécessite plus de travail : vous devez vous assurer que toutes les dépendances de SFML, y compris leurs en-têtes de développement, sont disponibles, assurez-vous que CMake est installé et exécutez manuellement certaines commandes. Cela se traduira par un package adapté à votre système. Si vous voulez suivre cette voie, il existe un [tutoriel dédié à la construction de SFML vous-même][1].
Enfin, l’option 3 est un bon choix pour une installation rapide si SFML n’est pas disponible en tant que package officiel. Téléchargez le SDK à partir de la page de téléchargement, décompressez-le et copiez les fichiers à l’emplacement de votre choix : soit un chemin séparé dans votre dossier personnel (comme /home/me/sfml), soit un chemin standard (comme /usr/local).
Si vous aviez déjà installé une ancienne version de SFML, assurez-vous qu’elle n’entrera pas en conflit avec la nouvelle version !
[1] : https://www.sfml-dev.org/tutorials/2.4/compile-with-cmake.php
##Installation - Windows La façon la plus courante d’installer SFML sur Windows est de télécharger le [SDK officiel][1]
Vous pouvez ensuite décompresser l’archive et l’utiliser dans l’environnement de votre choix.
vcpkg
Bien qu’il soit encore fortement en développement, si vous utilisez Visual studio 2017 ou une version plus récente, vous pouvez également installer SFML via [vcpkg][2] qui s’intègre à Visual Studio, simplifiant grandement le processus d’installation :
vcpkg installer sfml
[1] : https://www.sfml-dev.org/download.php [2] : https://github.com/Microsoft/vcpkg
Installation - macOS
Tout d’abord, vous devez télécharger le SDK SFML. Ensuite, afin de commencer à développer des applications SFML, vous devez installer les éléments suivants :
Fichiers d’en-tête et bibliothèques
SFML est disponible sous forme de dylibs ou de frameworks. Un seul type de binaire est requis bien que les deux puissent être installés simultanément sur le même système. Nous vous recommandons d’utiliser les cadres.
Cadres
- Copiez le contenu de Frameworks dans /Library/Frameworks.
dylib
- Copiez le contenu de lib dans /usr/local/lib et copiez le contenu de include dans /usr/local/include.
Dépendances SFML
SFML dépend de quelques bibliothèques externes sur Mac OS X. Copiez le contenu de extlibs dans /Library/Frameworks.
Modèles Xcode
Si vous utilisez Xcode, l’installation des modèles est fortement recommandée. Copiez le répertoire SFML de templates vers /Library/Developer/Xcode/Templates (créez les dossiers s’ils n’existent pas encore).
Hello World dans une fenêtre SFML
Écrivons un petit programme qui ouvrira une fenêtre, et écrivons “Hello World” sur l’écran.
#include <SFML\Graphics.hpp>
#include <cassert>
int main() {
sf::RenderWindow sfmlWin(sf::VideoMode(600, 360), "Hello World SFML Window");
sf::Font font;
//You need to pass the font file location
if (!font.loadFromFile(/*
Put the filename that identify the font file you want to load*/"myfont.ttf")) {
return -1;
}
sf::Text message("Hello, World !", font);
while (sfmlWin.isOpen()) {
sf::Event e;
while (sfmlWin.pollEvent(e)) {
switch (e.type) {
case sf::Event::EventType::Closed:
sfmlWin.close();
break;
}
}
sfmlWin.clear();
sfmlWin.draw(message);
sfmlWin.display();
}
return 0;
}
Expliquons ce que nous avons fait là-bas.
Tout d’abord, nous avons créé un objet sf::Font
. Nous avons besoin de cet objet pour stocker les données de police que nous utiliserons pour afficher le texte. Après cela, nous avons appelé la méthode loadFromFile
, utilisée pour charger la police dans la mémoire. Nous devons noter que SFML ne connaît pas vos polices système, vous devez donc fournir un nom de fichier, pas un nom de police
Après cela, nous avons créé un objet sf::Text
. On appelle un constructeur à 3 paramètres prenant :
- La chaîne que vous souhaitez afficher
- La police que l’objet utilisera
- La taille des caractères en pixel, que nous n’avons pas passée ici, elle sera donc mise à la valeur par défaut : 30
Puisque l’objet sf::Text
est prêt, nous avons juste besoin de le dessiner dans la boucle sfml principale, en appelant la méthode draw sur l’objet fenêtre de rendu sfmlWin
que nous avons créé auparavant
Installation ou configuration
- Tout d’abord, téléchargez une copie de SFML depuis la [page officielle][1].
[1] : http://www.sfml-dev.org/download/sfml/2.3.2/
- Enregistrez-le n’importe où sur votre ordinateur où il sera facilement accessible.
- Ouvrez les blocs de code.
- Allez dans ** Projet-> Options de construction-> onglet LinkerSettings. **
- Cliquez sur le bouton Ajouter et allez dans le dossier bin de SFML et sélectionnez tous les fichiers qui s’y trouvent.
- Allez maintenant dans l’onglet Search Directories et ajoutez le dossier ‘include’ de SFML.
- Dans le même onglet, cliquez sur le sous-onglet Linker Settings et ajoutez le dossier ‘bin’.