Vous êtes sur la page 1sur 4

Avant-projet dinformatique : Babyfoot virtuel

Mageri Filali Maltouf 8 janvier 2010

Prsentaton du sujet choisi


Le projet consiste raliser une implmentation simplie dun jeu de babyfoot : simulaton physique des mouvements de la balle collision entre les joueurs, la balle et les murs modlisation 3D de la table et des joueurs interface homme/machine ergonomique implmentation dun joueur non humain dtection des fautes

Analyse de la solution envisage


La solution envisage se compose des packages suivants : core 1. Baby.java : programme principal 2. Damier.java : afchage dun damier 3. Ecran.java : cran daide au dbut du jeu 4. Panneau3D.java : construction du babyfoot, dmarrage de tous les services (physique, afchage, contrles, son) 5. Tapis.java : tapis sur le babyfoot ia 1. IA.java : contrle dune quipe par lintelligence articielle 2. Oracle.java : prdiction de trajectoires ihm 1. Clavier.java : contrle dune quipe par lutilisateur au clavier 2. Texte2D.java : afchage de texte 2D dans un environnement 3D 3. Wiimote.java : contrle dune quipe par lutilisateur avec une wiimote obj 1. Balle.java : afchage de la balle sous forme de sphre 1

2. Barre.java : construction du modle de la barre 3. Joueur.java : construction du modle du joueur cylindre/paralllpipde/modle 4. Objet.java : interface dnissant un objet 3D outils 1. Constantes.java : tous les paramtres du jeu 2. Couleurs.java : dnition de couleurs de base pour lafchage 3D 3. Materiaux.java : dnition de matriaux pour lafchage 3D 4. Triplet.java : structure de donne permettant de manipuler des triplets 5. Visionneuse.java : classe permettant de visualiser des chiers .obj phyzik 1. Collision.java : dtection des collisions intervalle rgulier 2. IntersectionSP.java : intersection dune sphre et dun paralllpipde rectangle 3. Intervalle.java : structure de donnes permettant de manipuler des intervalles 4. PhysiqueBalle.java : mouvement de la balle extension de la classe PhysiqueSolide 5. PhysiqueBarre.java : mouvement de la barre extension de la classe PhysiqueSolide 6. PhysiqueJoueur.java : mouvement dun joueur attach la barre extension de la classe PhysiqueSolide 7. Phyzik.java : interface dnissant un systme physique (solide rigide) sera remplace par la classe PhysiqueSolide 8. Synchro.java : synchronisation des donnes entre PhysiqueBarre et PhysiqueJoueur sera remplace par la classe Liaisons 9. PhysiqueSolide.java : classe dnissant la physique des corps solides struct 1. Matrice3.java : matrices de taille 3 3 2. Matrice4.java : matrices de taille 4 4 3. Quaternion.java : quaternions (reprsente les rotations de R3 ) 4. Triplet.java : triplets de ottants 5. Vecteur3.java : vecteurs de taille 3 wiimote 1. Controle.java : classe qui enregistre les donnes reues par la wiimote zik 1. MP3.java : classe permettant de lire des chiers .mp3 Le moteur physique permet de modliser des solides rigides simples. On modlise les joueurs par un paralllpipde rectangle et la balle par une sphre. Ceci permet de calculer plus facilement les collisions (solutions algorithmiques dveloppes dans la littrature). La gestion des collisions se fait entre la balle et chaque joueur. Il faut tenir compte du temps de calcul. Certaines optimisations sont dcrites dans les ouvrages cits en annexe. Lintelligence articielle est calque sur les jeux de sports en quipe. 2

chancier
Objectif Simulation Collision Modlisation Interface homme/machine IA Fautes Date n janvier mi-janvier mi-janiver n fvrier dbut fvrier dbut mars Commenc ?

tat actuel

F IGURE 1 Recopie dcran de la version du 8 janvier 2010

5
5.1

Remarques
Interface homme/machine
Dans un premier temps, le mouvement des barres est command par le clavier. Les touches directionnelles

et permettent de contrler la rotation dune barre donne. Les touches et servent translater la barre.
Cette interface est gre par la classe

Behavior

de Java3D .

Dans un deuxime temps, on utilise la wiimote. La bibliothque wiiuse a t programme en langage C. La bibliothque wiiuseJ est une API Java fonde sur la version C. La wiimote est relie lordinateur par bluetooth. Une extension de la classe Behavior permet chaque instant daccder : trois donnes dacclration (cartsiennes) deux donnes angulaires (roulis, tangage) Les valeurs enregistres intervalle rgulier sont directement envoyes dans le moteur physique. 3

5.2

Fichiers manipuls
On cre un modle simpli des joueurs avec Java3D : ils sont reprsents par un paralllpipde rec-

tangle. La classe

Joueur

dispose galement dune mthode permettant de charger un chier .obj. Ce format a

t dni par Wavefront Technologies. Il est ainsi possible de charger des chiers 3D crs avec Blender. Pour ce qui est des chiers sonores, on utilise la bibliothque JLayer de Javazoom qui permet de lire des chiers .mp3.

5.3

Librairies

1. vecmath : The Vecmath API, https://vecmath.dev.java.net/ 2. java3d : Java 3D Parent Project, https://java3d.dev.java.net/ 3. wiiusej : Java API for Wiimotes, http://code.google.com/p/wiiusej/ 4. MP3 library for the Java Platform, http://www.javazoom.net/javalayer/javalayer.html

5.4

Rfrences

1. Andrew Davison, Pro Java 6 3D Game Development, http://fivedots.coe.psu.ac.th/~ad/jg2/ 2. Gino van den Bergen, Collision Detection in Interactive 3D Environments, Elsevier, 2004 3. Mat Buckland, Programming Game AI by Example, Wordware Publishing, 2005 4. Ian Millington, Articial Intelligence for Games, Elsevier, 2006 5. Ian Millington, Game Physics Engine Development, Elsevier, 2007

Sources
Vous trouverez les chiers relatifs au projet ladresse suivante : http://code.google.com/p/mabave/.