Enseignement C++ avancé en Master Informatique

 
Références bibliographiques

 
The C++ programming language, Bjarne Stroustrup
The C++ primer, Stanley Lipmann

 
Projet de programmation

2011: Labyrinthe Hanté

      Enoncé

 
Exemple de labyrinthe

Voila un exemple de labyrinthe.

Prototype pour Linux (32 et 64 bits) et Windoze

Vous trouverez dans l'archive LabyrintheProto.tgz le prototype du jeu.

Cette version du prototype vous permet d'avoir des affiches avec des textures différentes, plusieurs personnages de gardiens en même temps.
Les sons, images et personnages sont regroupés dans des sous répertoires distincts.

Voici la composition de l'archive:

  • Environnement.h, Mover.h, FireBall.h, Sound.h (à ne pas modifier!)
  • Gardien.h, Chasseur.h, Chasseur.cpp, Labyrinthe.h et Labyrinthe.cpp qui sont des exemples et que vous devez réécrire en vous inspirant de ceux-là!
  • Les répertoires sons, textures et modeles contiennent respectivement les sons (fichiers .wav ou .mp3) les images des murs, affiches etc. (fichiers .jpg ou .gif), et les modeles de gardiens (fichiers .md2 et .jpg).

    Ces répertoires sont déjà préremplis avec des sons, images et personnages. Le code fourni en exemple ainsi que celui dont vous n'avez pas les sources (OpenGL.o, OpenGL64.o et OpenGL.lib) cherchent ces fichiers dans ces répertoires.

  • Makefile-proto un makefile pour compiler le prototype du programme avec 'g++' sous Linux et 'cl' (VC6) sous Windoze
  • Le fichier OpenGL.o (OpenGL64.o pour Linux 64 bits et OpenGL.lib pour Windoze 32 bits) contient l'interface graphique (dont les sources ne sont pas fournis)
  • Le repertoire fmod contient la bibliotheque pour le son.
  • Informations pour Windoze

    Voila quelques informations spécifiques pour compiler sous Windoze:

  • Vous devrez déplacer fmod/Win-4.3/fmodex.dll dans le repertoire des dll de Windoze (Windows/System32)
  • Vous devrez aussi déplacer fmod/Win-4.3/fmodex_vc.lib dans le repertoire des 'lib' de VC++. Les .h restants sont à laisser sur place.
  • Vous devrez aussi et bien sûr, conserver les mêmes fichiers .h et .cpp de l'archive pour recompiler l'exemple et ensuite votre projet.
  • Quelques fonctions utiles

  • void message (char* format, ...)

    permet d'afficher un message en haut à gauche de la fenêtre. Cette fonction est du type 'printf', à nombre variable d'arguments de types quelconques.

    message ("Nombre de gardiens restants: %d", nb_gardiens);
              // affiche le nombre de gardiens.
    ...
    message (""); // efface le message precedent.
    Le premier argument a la même syntaxe que pour la fonction 'printf' (faire un 'man printf' pour plus de précisions.

  • Le système sonore permet de controler le volume et la position stéreophonique d'un son. Pour cela la fonction Sound::play a deux arguments (optionnels):

    void Sound::play (float volume, float pan)

    'volume' est un nombre entre 0 et 1 (plus c'est grand, plus c'est sonore) 'pan' est nombre entre 0 (gauche) et 1 (droite).

  • Quelques modèles de personnages pour vos gardiens

  • Marvin: Marvin.md2 et Marvin.jpg
  • Potator: Potator.md2 et Potator.jpg
  • Droid: Droid.md2 et Droid.jpg
  • Squelette: Squelette.md2 et Squelette.jpg
  • drfreak: drfreak.md2 et drfreak.jpg
  • Bon courage - Patrick Amar