Bonjour à tous ! Je suis nouveau et j'ai un problème avec un jeu que je veux créer. Le but de ce jeu est d'éviter que des balles rouges (qui rebondissent un peu partout) et que des balles poursuivantes touchent la balle verte qui suis notre souris. Pour les balles poursuivantes, sa va, mais pour les balles rouges, sa va moins bien. Mon problème est que, si j'ai deux balles rouges sur la scène, une dans le centre et l'autre près du mur droit, lorsque la balle près du mur droit touchera ce dernier, sa vitesse en x sera multipliée par -1, mais celle du centre aussi ! Alors toutes les balles bougent pareilles, elles vont toutes à un endroit en même temps et dans la même direction. C'est comme si toutes les balles ensembles en formaient une seule... J'ai alors essayé de mettre une variable de vitesse unique pour chaque balles, mais je ne sais pas si j'ai bien réussi. Voici le code :
//ici on déclare quelques variables//
//pour que chaque balle ait sa propre vitesse, j'ai déclaré un array (j'ai mis la valeur 10 seulement pour tester)
var balle_rouge_vitesse_x = new Array(10);
var balle_rouge_vitesse_y = new Array(10);
var balle_rouge_nombre = 0;
var balle_rouge_rayon = _root.balle_rouge._width/2;
//la variable nombre_balle_total sers pour la profondeur lorsqu'on crée les balles
var nombre_balle_total = 0;
//fonction qui crée les balles rouges//
function creer_balle_rouge() {
balle_rouge_nombre++;
nombre_balle_total++;
this.attachMovie("balle_rouge", "balle_rouge"+"_"+balle_rouge_nombre, nombre_balle_total);
//on place les balles rouges au hasard sur la scène
this["balle_rouge"+"_"+balle_rouge_nombre]._x = random(520)+15;
this["balle_rouge"+"_"+balle_rouge_nombre]._y = random(370)+15;
//ici on règle la vitesse des balles rouges
balle_rouge_vitesse_x[balle_rouge_nombre] = 2;
balle_rouge_vitesse_y[balle_rouge_nombre] = 2;
//toujours dans la fonction, on met le monvement des balles rouges
this["balle_rouge"+"_"+balle_rouge_nombre].onEnterFrame = function() {
if ((this._x-balle_rouge_rayon)<0) {
balle_rouge_vitesse_x[balle_rouge_nombre] *= -1;
}
if ((this._x+balle_rouge_rayon)>550) {
balle_rouge_vitesse_x[balle_rouge_nombre] *= -1;
}
if ((this._y-balle_rouge_rayon)<0) {
balle_rouge_vitesse_y[balle_rouge_nombre] *= -1;
}
if ((this._y+balle_rouge_rayon)>400) {
balle_rouge_vitesse_y[balle_rouge_nombre] *= -1;
}
this._x += balle_rouge_vitesse_x[balle_rouge_nombre];
this._y += balle_rouge_vitesse_y[balle_rouge_nombre];
};
Voilà ! J'espère que vous pourrez m'aider à résoudre mon problème.
Merci d'avance !