Rechercher : dans
Par :

Rebond casse brique java

Dernière réponse le 21 avr 2008 à 07:05:25 rr, le 20 avr 2008 à 19:18:08 
 Signaler ce message aux modérateurs

Bonjour, je réalise un projet en java sous eclipse du jeu du casse brique.
Je n'arrive pas à gérer les rebonds entre la balle et la raquette de jeu.
Pour l'instant , si la balle entre en contact avec la raquette,celle ci prend un angle droit.
Le jeu est donc répétitif(cela provoque toujours la meme partie!).
J'ai pensé à gérer la raquette en trois parties(gauche milieu et droite) afin de donner un certain angle
à la balle en fonction de la zone touchée. Seulement je ne vois pas du tout comment faire
Pouvez-vous m'aider?Ya-t-il une meilleure solution?
Voici le code de ma classe balle de la méthode move() appelé dans le thread de ma balle :

public void move() {
x += dx;
y += dy;

//contact avec un mur
if (x < 0) {
x = 0;
dx = -dx;
}
if (x + XSIZE >= canvas.getWidth()) {
x = canvas.getWidth() - XSIZE;
dx = -dx;
}
if (y < 0) {
y = 0;
dy = -dy;
}
if (y + YSIZE >= canvas.getHeight()) {
y = canvas.getHeight() - YSIZE;
dy = -dy;
}



Raquette r = ((BalleCanevas)canvas).getRaquette();
if (r.contact(x, y)==1){
//contact entre la balle et la raquette
y=r.getY()-YSIZE;
dy =-dy; // pour l'instant je donne un angle droit

}

Classe raquette méthode contact :

public int contact(int x2, int y2) {

int cas =0;

if ( x2>this.getX() && x2<(this.getX() + Raquette.XSIZE)
&& (y2 + Balle.getYSIZE())>this.getY() && (y2 - Balle.getXSIZE())<(this.getY() + Raquette.YSIZE))
{

//si la balle entre en contact avec la partie
//gauche de la raquette
if(x2<this.getX()+5)
cas=1;
// si la balle entre en contact avec le milieu
//de la raquette
else if(x2<this.getX()+10)
cas=2;
// si la balle entre en contact avec la partie
//droite de la raquette
else cas=3;


}
return cas;
}

Configuration: Windows XP
Firefox 2.0.0.14

Meilleures réponses pour « rebond casse brique java » dans :
Numériser ses cassettes audio ou vinyles sur CD ou disque dur VoirComment transférer le contenu d'une cassette audio ou d'un vinyle vers son disque dur ? Comment graver sur CD ses vieux vinyles et cassettes ? Cet article vous présente le matériel et les logiciels nécessaires pour y remédier : I....
[Firefox] plugin Java Jre de Sun VoirA) Les différentes variantes Java chez Sun B) Installation sous Mandriva Limited Edition 2005 ETAPE 1 ETAPE 2: Création du lien symbolique C) Installation sous debian lenny D) Installation sous ubuntu hardy heron A) Les différentes...
Installer Java sous Ubuntu VoirPar défaut, Firefox n'est pas fourni avec Java. Voici comment procéder pour l'installer: Ouvrez un terminal (Menu Applications > Accessoires > Terminal) et tapez: sudo aptitude install sun-java6-jre sun-java6-plugin ou sudo aptitude install ...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...
J2EE - Java 2 Enterprise Edition VoirIntroduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, destinées à des usages différents : J2ME : Java 2 Micro Edition est prévu pour le développement d'applications embarquées, notamment sur des...

1

 vignemail1, le 21 avr 2008 à 07:05:25
  • +1

Il faut plutôt calculer l'angle de réflexion si tu ne veux pas es angles droits à chaque rebond. L'angle d'arrivé sur la surface = l'angle de rebond. i=r en optique. Il faut donc savoir l'angle de la surface, l'angle d'arrivée afin de calculer l'angle de rebond.
Membre contributeur
Spécialisé réseaux, webmastering, programmation

Répondre à vignemail1