Projet partie IV
Transcription
Projet partie IV
EILCO ING 1 - POO Java 2014/2015 Projet phase 4 I But du projet Le but du projet est de réaliser (au moins partiellement) un programme de casse-brique. Le projet va être décomposé en plusieurs sous-parties de manière à le rendre plus facile à programmer. Ce projet synthétise les notions vues au cours de cette année. II Gestion des collisions Nous allons dans cette quatrième partie du projet, rajouter le processus de gestion des collisions avec la raquette et les diérentes briques. Nous allons dans un premier temps commencer par rajouter des méthodes dans la classe Balle permettant de modier le déplacement de la balle en cas de collisions puis nous allons gérer les collisions dans les classes Raquette et Brique. III Modication de la classe Balle Rajouter les méthodes suivantes qui permettent de modier les attributs de déplacement dx et dy du déplacement de la balle : public void goUp() public void goDown() public void goRight() public void goLeft() De même, rajouter les méthodes accesseurs qui permettent d'accéder aux coordonnées de la raquette public int getX() et public int getY(). Faîtes un certain nombre de tests dans la classe MonCasseBrique pour vérier que le changement de direction de la balle fonction. IV Gestion des collisions IV.1 Avec la raquette Pour gérer les collisions avec la raquette, nous allons utiliser la classe Raquette2D.Double qui permet de créer un rectangle virtuelle en utilisant le constructeur de cette même classe. Rectangle2D . Double ( double x , double y , double w , double h ) Consultez les informations de la classe à l'adresse http://docs.oracle.com/javase/7/docs/api/ java/awt/geom/Rectangle2D.Double.html La méthode public boolean contains(double x, double y) de cette même classe permet de vérier qu'un objet positionné aux coordonnées (x,y) rentre en collision (a une intersection) avec le rectangle. A réaliser Après avoir lu et compris les informations ci-dessus, créer dans la classe Balle une méthode public boolean intersection(Raquette r) qui permettra de tester l'intersection entre la raquette et la balle créer un rectangle englobant la raquette ; tester l'intersection de la balle avec la raquette grâce à la méthode contains() attention vous ne devez prendre en compte la largeur de la balle 1 EILCO ING 1 - POO Java IV.2 2014/2015 Gestion des collisions avec les briques Nous allons utiliser le même principe pour l'utilisation avec les briques mais cette fois ci, c'est chaque brique qui va vérier qu'il existe une intersection entre elle et la balle A Réaliser Créer dans la classe Brique une méthode public boolean intersection(Ball b) qui vérie l'intersection de la balle avec la brique créer un rectangle englobant la balle ; tester l'intersection de la balle avec la brique grâce à la méthode contains() attention vous ne devez prendre en compte la largeur de la balle et de la brique. V mise en oeuvre A partir des informations qui vous ont été données ci-dessus, modier la classe MonCasseBrique à partir du squelette suivant : timer = new Timer (20 , new ActionListener () { public void actionPerformed ( ActionEvent e ) { ball . move () ; repaint () ; if ( ball . intersection ( raquette ) ) { System . out . println ( " t o u c h e " ) ; ball . goUp () ; // A COMPLETER } // fin intersection raquette - Balle for ( int i = 0; i < briques . size () ; i ++) if (( briques . get ( i ) ) . intersection ( ball ) ) { } // A COMPLETER } // fin actionPerformed A Réaliser compléter le squelette suivant en particulier vous devez gérer les rebonds s'ils arrivent sur la partie droite ou gauche de la raquette pensez à supprimer les briques quand elles sont touchées attention deux briques peuvent être touchées en même temps 2