Big Tuto SFML 2 : Rabidja v. 3.0

Chapitre 2 : Configurons notre projet en SFML 2 sous Visual Studio 2013

 

Tutoriel présenté par : Jérémie F. Bellanger (Jay81)
Publication : 11 février 2014
Date de révision : 2 novembre 2015

      Prologue

    Pour programmer, nous avons besoin d'un IDE (ou Integrated Development Environment, soit en français, Environnement de Développement), c'est-à-dire d'un programme qui nous permettra d'écrire notre code source, puis de le compiler pour le tester (enfin, on peut aussi utiliser un éditeur de texte et compiler via la console, mais je le déconseille aux débutants wink). Il en existe plusieurs, et on verra ici comment utiliser Visual Studio 2013 Community, qui a le mérite d'être très complet et gratuit (en fait, il s'agit de la version pro à plusieurs milliers de dollars offerte par Microsoft pour attirer plus de développeurs, alors autant en profiter ! angel).

    Toutefois, si vous préférez utiliser Code::Blocks ou un autre IDE de votre choix, ou bien que vous êtes sous Mac ou Linux, le site officiel de la SFML vous indique la marche à suivrewink

    J'ai moi-même suivi leurs conseils, mais comme j'ai eu quelques déboires de configuration avant que cela ne fonctionne, je préfère réécrire ma propre solution. angel

Attention ! J'attire votre attention sur le fait que configurer le compilateur pour qu'il retrouve les bibliothèques (libraries en anglais) où vous les avez installées sur le disque, est souvent un exercice fastidieux, surtout pour les débutants. La moindre erreur, et cela ne marchera pas.

En fait, il s'agirait presque d'une sorte d'initiation pour devenir programmeur : seuls les élus qui arriveront à configurer leur IDE sans renoncer accéderont au saint Graal de la prog' ! laugh

Mais pour ceux qui ont peur de devenir chauve avant l'âge, j'ai prévu une config' clef en mains : si vraiment vous n'y arrivez pas avec tous les conseils que je vais vous prodiguer ci-dessous : installez simplement Visual Studio 2013 Community, puis téléchargez l'archive du chapitre 3 : là, dézippez-la où vous voulez, copiez le dossier SFML sous C:, ouvrez le projet, et c'est prêt ! Par la suite, toutes les archives téléchargeables des chapitres suivants fonctionneront aussi ! wink

      Installer Visual Studio 2013 Community

    Pour installer Visual Studio 2013 Community, suivez le lien ci-dessous. Par défaut, vous téléchargerez un petit fichier exécutable à lancer qui téléchargera tout VS et l'installera pour vous. 

   Mais attention, VS 2013 fait plusieurs gigas ! surprise Si vous devez l'installer sur plusieurs PC, il peut alors être judicieux de chercher dans les options du site pour télécharger la version iso, à la place. Ainsi, vous ne le téléchargerez qu'une seule fois. wink

 

    Voilà, une fois l'installation terminée, il vous demandera de vous connecter avec votre compte Microsoft (celui que vous utilisez sous Windows 8 par exemple) et il enregistrera automatiquement la licence à votre nom. wink

   On est maintenant prêt à télécharger la SFML et à configurer le bestiau ! laugh

 

      Télécharger la SFML

    Je vous rappelle que le site officiel de la SFML vous propose déjà un tuto ici pour VS. Le nôtre viendra donc en complément. wink

    Sinon, nous allons télécharger la SFML 2.2 (la dernière en date au moment où j'écris ces lignes wink). Pour ce faire, suivez le lien ci-dessous et sélectionner Windows / Visual C++ 12 (2013) - 32 bits

    Mais pourquoi 32 bits, me direz-vous ? surprise C'est simplement à des fins de compatibilité : votre programme sera ainsi compatible avec le plus grand parc d'ordinateurs possibles. cheeky

   Si maintenant, vous ne visez que les ordinateurs récents en 64bits, vous pouvez aussi choisir la version 64bits ! Et si vous êtes fou, vous pouvez installer les deux et configurer votre projet pour compiler à la fois en 32 et 64 bits et proposer les 2 versions à vos joueurs. wink

    Maintenant que c'est téléchargé, dézippez l'archive et copiez son contenu sous C:\SFML\VS2013, pour le retrouver plus facilement.

Attention : si vous copiez le contenu de l'archive ailleurs, il vous faudra changer le chemin d'accès dans la suite du tuto ! wink

      Configurer un nouveau projet Visual Studio 2013 Community

    Ouvrez maintenant Visual Studio, si ce n'est déjà fait, et suivez à la lettre les indications suivantes :

- Créez un nouveau projet : "Win32 application".
- Choisissez "Windows application" puisque nous voulons ouvrir une fenêtre, et pas la console. wink
- Cochez la case "Empty project", pour démarrer avec un projet vide (sinon, il vous faudra tout supprimer cheeky).
- Créez un fichier main.cpp et ajoutez-le au projet. Ce sera notre fichier de base, là où se trouvera notre main (logique indecision).
 
     Voilà, le projet est maintenant créé ! angel
     Il ne nous reste plus qu'à configurer la SFML, et c'est là que ça se complique, alors suivez bien ! laugh
 
- Ouvrez les Propriétés du projet : pour cela, faites un clic droit sur le nom du projet puis choisissez Propriétés.
- Choisissez Toutes les configurations en haut à gauche dans le menu déroulant (cf. capture d'écran ci-dessous).
- Dans C/C++ / Général / Autres répertoires Include : Ajoutez le chemin d'accès vers le dossier include de la SFML (normalement : C:\SFML\VS2013\include),

- Dans Editeur de liens / Général / Répertoires de bibliothèques supplémentaires : Ajoutez le chemin d'accès vers le dossier lib de la SFML (C:\SFML\VS2013\lib),

- En sélectionnant Debug en haut à gauche dans le menu déroulant :
- Dans Editeur de liens / entrée : Dépendances supplémentaires : Ajoutez : 
sfml-graphics-d.lib
sfml-window-d.lib
sfml-system-d.lib
sfml-audio-d.lib
sfml-main-d.lib

- En sélectionnant Release en haut à gauche dans le menu déroulant :
- Dans Editeur de liens / entrée / Dépendances supplémentaires : Ajoutez : 
sfml-graphics.lib
sfml-window.lib
sfml-system.lib
sfml-audio.lib
sfml-main.lib

- Pour vérifier que la SFML 2.2 est bien configurée, copiez dans le fichier main.cpp ce code de démo donné dans le tuto de la SFML (je vous le redonne ci-dessous par souci pratique). wink
 
#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; 
}
 
- Enfin, copiez les DLLs dans le bon répertoire (elles se trouvent dans <installation-de-sfml/bin>) : 
- Répertoire Debug, copiez toutes les dlls en -d (pour Debug) + celles pour le son :
sfml-graphics-d-2.dll
sfml-window-d-2.dll
sfml-system-d-2.dll
sfml-audio-d-2.dll
sfml-main-d-2.dll
sfml-network-d-2.dll
openal32.dll
libsndfile-1.dll
 
- Répertoire Release, copiez toutes les autres dlls + celles pour le son:
sfml-graphics-2.dll
sfml-window-2.dll
sfml-system-2.dll
sfml-audio-2.dll
sfml-main-2.dll
sfml-network-2.dll
openal32.dll
libsndfile-1.dll
 

 Note : tant que vous n'aurez pas essayé de compiler une première fois, il se peut que ces dossier n'aient pas été créés. Cliquez sur la flèche verte en haut, pour faire une tentative. Si une erreur vous indique qu'il manque la ou les dlls, arrêtez le débuguage, copiez les libs dans le dossier nouvellement créé et recommencez. 

     Eh voilà, votre code devrait normalement compiler, et une fenêtre devrait s'ouvrir avec un cercle vert dedans. wink
 
     Si ce n'est pas le cas, répétez les opérations précédentes et vérifiez que le chemin d'accès à la SFML est bien le bon.
   Si toutefois vous arrivez au bord de la crise de nerfs angry parce que ça ne fonctionne toujours pas, sans savoir pourquoi, essayez l'archive préconfigurée (à télécharger avec le chapitre 3). cheeky
 
    Voilà, au chapitre prochain, on rentrera dans le vif du sujet et on commencera notre projet Rabidja. Vous pouvez donc déjà supprimer tout le code présent dans le fichier main.cpp. On n'en aura plus besoin ! C'était juste pour vérifier que tout était bien configuré. wink
 
     @ bientôt pour la suite ! angel
                                         Jay.

 

Connexion

CoalaWeb Traffic

Today76
Yesterday157
This week588
This month2881
Total1742088

18/04/24