Algorithmique et Programmation Projet Labyrinthe + Pacman 3D

Transcription

Algorithmique et Programmation Projet Labyrinthe + Pacman 3D
Algorithmique et Programmation
Projet Labyrinthe + Pacman 3D
G1: keriven(at)cermics.enpc.fr
G3: charpiat(at)clipper.ens.fr
G5: pierre(at)senellart.com
G2: Jean-Philippe.Pons(at)sophia.inria.fr
G4: thomas.deneux(at)ens.fr
G6: gmellier(at)melix.org
09/01/2004
Le projet comporte deux parties :
1. Réaliser un labyrinthe avec une vue 3D subjective dans lequel le joueur se déplace à l’aide des
touches du clavier à la recherche de la sortie ou d’objets.
2. Réaliser une interface graphique 3D pour le projet Pacman.
Les fonctionnalités 3D de la WinLib vous simplifieront grandement la tâche. En effet, quelques lignes de
code suffisent pour définir un maillage 3D, l’afficher, et déplaçer la caméra.
1
Labyrinthe 3D
1.1
Structures de données
On aura d’abord besoin d’une classe pour représenter une position dans le labyrinthe sous la forme
de deux entiers.
Le labyrinthe sera représenté par une classe contenant un tableau 2D. La valeur de chaque élément du
tableau indiquera s’il s’agit d’un mur, d’un couloir, ou encore d’un objet à ramasser.
Le joueur sera représenté par une classe contenant notamment sa position et sa direction de déplacement
(Nord, Sud, Est ou Ouest).
1.2
Construction du maillage
Afin d’afficher la vue 3D du labyrinthe, il faut construire un maillage triangulaire de ses éléments (sol,
murs, etc). La classe Mesh de la WinLib fournit tout ce dont vous aurez besoin.
Un maillage consiste en :
– un tableau de points 3D (classe Point),
– un tableau de triplets d’entiers (classe Triangle) qui indique les points à relier pour former chaque
triangle.
De plus on peut associer des couleurs aux triangles du maillage.
Le maillage ne doit être construit qu’au début du jeu et lorsque la géométrie du labyrinthe change (par
exemple lorsque le joueur ramasse un objet). Pour visualiser le maillage, il ne restera plus qu’à placer et
à orienter la caméra au moyen de méthodes de la classe Window de la WinLib.
1.3
Gestion du clavier
Pour récupérer au vol les touches du clavier, utiliser la fonction GetEvent de la WinLib en s’inspirant
de la fonction Clavier du TP 2 (cf annexes du polycopié du cours).
1.4
Déroulement du jeu
Durant la boucle de jeu il faut :
– contrôler la validit́e des déplacements du joueur (ne pas traverser les murs, ne pas sortir du domaine
du labyrinthe).
– gérer la victoire (par exemple si le joueur atteint la sortie du labyrinthe), la défaite (par exemple si
le temps maximum est écoulé), la récolte des objets, etc.
– Déplacer et orienter la caméra en fonction des déplcements du joueur et mettre à jour l’affichage.
1
2
Pacman 3D
Il s’agit de réaliser, à l’intention de vos camarades ayant choisi le projet Pacman, un code de visualisation 3D qu’ils pourront brancher à la place ou en complément de l’affichage 2D. La programmation 3D
sera très similaire à celle de la première partie du projet. La difficulté principale sera de comprendre et
d’utiliser les structures de données du jeu de Pacman.
2