Projet phase 2

Transcription

Projet phase 2
EILCO ING 1 - POO Java
2014/2015
Projet phase 2
I But du projet
Le but du projet est de réaliser (au moins partiellement) un programme de casse-briques. 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 Déplacement de la balle
Nous allons dans cette deuxième partie du projet, rajouter le processus de déplacement de la balle
dans ce casse-brique.
An de gérer les déplacements, nous allons utiliser une nouvelle classe de la bibliothèque Java, la classe
Timer. Cette classe permet de déclencher une ou plusieurs actions tous les xx millisecondes.
La classe Timer est assez dicile à utiliser, les quelques lignes suivantes vous donnent le modèle à
hésiter dans le constructeur de votre classe MonCasseBrique.
import javax . swing . Timer ;
import java . awt . Event ;
import java . awt . event . ActionListener ;
import java . awt . event . ActionEvent ;
timer = new Timer (20 , new ActionListener () {
public void actionPerformed ( ActionEvent e ) {
ball . move () ;
repaint () ;
}
}) ;
timer . start () ;
Ces quelques lignes indiquent respectivement que nous allons créer un Timer qui va se déclencher
toutes les 20 ms. Les deux instructions qui seront exécutées toutes les 20 ms seront les suivantes :
ball . move () ;
repaint () ;
C'est à dire, on déplace la balle et on force le ré-achage. L'instruction
timer.
timer.start(); démarre le
A réaliser
Après avoir incorporé les instructions explicitées ci-dessus et éventuellement rajouter les attributs
nécessaires, nous allons écrire la méthode move de la classe Balle
rajouter des attributs dx et dy qui seront respectivement positionnés à 1 et −1 et qui correspondront au décalage ajouté à chaque appel du Timer
visualiser ce que vous obtenez
vous devez obtenir une traînée rouge comme indiquée à la gure ??
pour quelle raison, modiez votre code pour eacer cette trace rouge.
III Gestion des rebonds sur le mur
Nous allons maintenant gérer les collisions avec les murs (droite, gauche, haut et bas). Vous pouvez
facilement calculer la largeur de votre mur de briques puisque vous avez le nombre de briques, la taille de
chaque brique et l'espace entre les briques. On considérera que la balle rebondira :
1
EILCO ING 1 - POO Java
2014/2015
en haut lorsque l'ordonnée de la balle vaudra 0
en bas lorsque la balle arrivera à l'ordonnée de la raquette plus 30 pixels
à gauche lorsque l'abscisse sera égal à 0
à droite lorsque l'abscisse aura pour valeur la largeur du mur
A Réaliser
Modier la méthode move() en conséquence. Vous modierez les valeurs de dx et dy aux valeurs qui
vous sembleront les meilleures.
Tester votre programme et appeler votre enseignant.
Figure 1 Copie d'écran projet phase 2
2