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