Skip to content

Latest commit

 

History

History
74 lines (56 loc) · 2.19 KB

ex01.org

File metadata and controls

74 lines (56 loc) · 2.19 KB

Exercice: Premiers pas C++, SDL2

Consignes

Ressources C++ et SDL2

Pour cet exercice, vous pourrez vous appuyer sur:

Fichiers exercice1.cpp et exercice1.hpp

Éclatez votre code en deux fichiers:

  1. Fichier exercice1.hpp pour les définitions:
    • La classe avec ses membres et méthodes sans code
  2. Fichier exercice1.cpp pour:
    • Le code des méthodes de la classe MainSDLWindow, ex:
      int MainSDLWindow::Init(...) {
      // Code ici
      }
              
    • La fonction main(), il faudra créer une fonction main() dans votre code pour le complier et le tester:
      #include "exercice1.hpp"
      
      int main(void) {
          MainSDLWindow main_window;
          main_window.Init(...);
      }
              

Rappels:

  • Compiler: g++ exercice1.cpp -lSDL2 -o exercice1
  • Tester: ./exercice1

Exercice: Créer une classe MainSDLWindow en C++

La classe doit permettre de:

  1. Créer une fenêtre SDL avec un fond noir
  2. Quitter la fenêtre SDL quand on clique sur la croix (ou Alt+F4)

La classe doit comporter:

  • Les méthodes suivantes:
    • public:
      • MainSDLWindow(void): constructeur
        • met les membres window et renderer à la valeur NULL
      • ~MainSDLWindow(void): destructeur
        • détruit proprement les objects window et renderer
        • quitte la SDL
      • int Init(...): méthode
        • prend en argument le nom de la fenêtre, sa largeur et sa hauteur
        • créé les objets window et renderer
        • si erreur SDL durnat la création des objets SDL:
          • afficher des messages d’erreur pour avertir l’utilisateur
          • retourner EXIT_FAILURE
        • affecte le nom à la fenêtre
        • dessine un fond noir dans le renderer
        • si aucune erreur, retourner EXIT_SUCCESS
      • GetRenderer(void): méthode
        • Retourne le pointeur sur l’objet renderer
  • Les membres suivants:
    • private:
      • window de type SDL_Window * (pointeur)
      • renderer de type SDL_Renderer * (pointeur)