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