Section Sciences de la vie
Programmation Orientée Objet
I. Ouvrir une fenêtre et compiler un premier programme SFML
Pour commencer, nous allons simplement créer une application affichant une fenêtre vide (noire), notre première application graphique!
Dans un dossier de votre choix (dans le répertoire Programmation si vous travaillez en salle de TP), créez un dossier nommé pong. A l'intérieur de celui-ci, dezzipez cette archive qui contient:
- un dossier res pour les ressources de notre application (images, fontes...)
- un dossier src pour les fichiers sources (et qui contient le matériel Cmake nécessaire à la compilation du projet).
Créez un projet dans QTCreator comme indiqué ici (le nom du dossier sera pong au lieu de sfmlCmake mais les étapes sont les mêmes).
- N'oubliez pas de rafraîchir le matériel de compilation avec Build > Run Cmake à chaque fois que vous ajoutez un nouveau fichier au projet.
- Si vous ne l'avez pas fait lors d'une utilisation antérieure de QtCreator, n'oubliez pas de procéder aux réglages conseillés.
Si vous êtes sous Linux ou MacOs, vous pouvez aussi compiler et exécutez en ligne de commande (créez pour cela un dossier build vide au même niveau que le dossier src et référez-vous à ces indications).
A l'intérieur de src, complétez le fichier main.cpp avec le contenu suivant:
#include <SFML/Graphics.hpp> #include "Config.hpp" int main() { sf::RenderWindow window(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT), "InfoSV Pong"); sf::RectangleShape rectangle; rectangle.setSize(sf::Vector2f(100, 50)); // Taille (100x50) rectangle.setPosition(10, 20); //Position sur l\'écran"); while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)){ // Les événements seront gérés plus tard ici } window.clear(); window.draw(rectangle); window.display(); } return EXIT_SUCCESS; }
Compilez le projet et exécutez la cible pong. Vous devriez obtenir une fenêtre noire comme ci-dessous.

Remarquez qu'il n'est pas possible de la fermer en cliquant sur le bouton; il faudra donc quitter le programme par un Ctrl+C dans la console. Cela vient du fait que nous n'avons pas encore implémenté la gestion des événements, qui viendra dans un prochain chapitre