Boules qui rebondissent, probleme de code

Résolu
Signaler
Messages postés
26
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
19 août 2011
-
Messages postés
26
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
19 août 2011
-
Bonjour, je cherche à faire une menu avec des balles qui rebondissent (6 balles),
 J'ai commencer des essais de balle qui rebondissent à partir de ce code http://www.flashkod.com/codes/GRAVITE-ELASTICITE_37158.aspx mais j'ai un souci, le code à l'air bon mais lors de la lecture les boules partent bien puis se mettent a buger.
je vous joint mon code :
stop();
var vitesse = 4;
var elasticite = 5;
var gravite = 10;
_root.balle.elasticite = elasticite;
_root.balle.vitesse = vitesse;
_root.balle.gravite = gravite;
_root.balle2.elasticite = elasticite;
_root.balle2.vitesse = vitesse;
_root.balle2.gravite = gravite;
_root.balle3.elasticite = elasticite;
_root.balle3.vitesse = vitesse;
_root.balle3.gravite = gravite;
_root.balle4.elasticite = elasticite;
_root.balle4.vitesse = vitesse;
_root.balle4.gravite = gravite;
_root.balle5.elasticite = elasticite;
_root.balle5.vitesse = vitesse;
_root.balle5.gravite = gravite;
_root.balle6.elasticite = elasticite;
_root.balle6.vitesse = vitesse;
_root.balle6.gravite = gravite;
//***************************
balle.onEnterFrame = function() {
 vitesse += (0.1*gravite);
 this._y += vitesse;
 if (this._y>280) {
  this._y = 280;
  vitesse -= elasticite;
  vitesse *= -1;
 }


balle2.onEnterFrame = function() {
 vitesse += (0.1*gravite);
 this._y += vitesse;
 if (this._y>280) {
  this._y = 280;
  vitesse -= elasticite;
  vitesse *= -1;
 }}
balle3.onEnterFrame = function() {
 vitesse += (0.1*gravite);
 this._y += vitesse;
 if (this._y>280) {
  this._y = 280;
  vitesse -= elasticite;
  vitesse *= -1;}
balle4.onEnterFrame = function() {
 vitesse += (0.1*gravite);
 this._y += vitesse;
 if (this._y>280) {
  this._y = 280;
  vitesse -= elasticite;
  vitesse *= -1;}
balle5.onEnterFrame = function() {
 vitesse += (0.1*gravite);
 this._y += vitesse;
 if (this._y>280) {
  this._y = 280;
  vitesse -= elasticite;
  vitesse *= -1;}
balle6.onEnterFrame = function() {
 vitesse += (0.1*gravite);
 this._y += vitesse;
 if (this._y>280) {
  this._y = 280;
  vitesse -= elasticite;
  vitesse *= -1;
 }  
 }
 }
 }}}

 je peut vous transmettre ma source si vous le souhaitez/
 j'espere que quelqu'un pourra m'aider, merci

11 réponses

Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
10
bonsoir,

C'est normal que ça déconne : dans chaque balle tu modifies "vitesse", or il s'agit de la même variable, celle déclarée tout en haut : "var vitesse = 4;"
Pour t'éviter le problème, ajoute "this" devant "vitesse" dans tes boucles.

De plus, tu pourrais faire une boucle for pour éviter cette longueur de code.

Peg'
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
10
"aider", oui "refaire à ta place", non.

Donc as-tu déjà modifié la variable pour savoir si ça fonctionne ou pas ?

Peg'
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
10
c'est que tu n'as pas mis "this" partout devant la variable "vitesse" de tes enterframes.
Je viens de tester chez moi et ça fonctionne.

Montre-moi un de tes enterFrames, juste pour voir.

Peg'
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
10
il te manque un "this" devant la variable "vitesse" de la 3ème ligne.

Peg'
Messages postés
26
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
19 août 2011

peut tu m aider à refaire le code stp 
Messages postés
26
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
19 août 2011

oui sa marche pas les boules tombent d'un coup
Messages postés
26
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
19 août 2011

balle.onEnterFrame = function() {
 this.vitesse += (0.1*gravite);
 this._y += vitesse;
 if (this._y>280) {
  this._y = 280;
  this.vitesse -= elasticite;
  this.vitesse *= -1;
 }

voila
Messages postés
26
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
19 août 2011

je viens de voir mon erreur c'est cool merci
dis moi existe t-il un code pour que 15 sec après les boules viennes ce placer au milieu de mon ecran?
merci bcp
Messages postés
26
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
19 août 2011

ou que les boules facent  des bond de haut en bas et ce stop au milieu...
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
10
un code tout fait, non ...
Mais interesse-toi au setTimeout ou setInterval pour le délais de 15 sec et aux tweens pour les déplacements de clips d'un point à un autre.

Peg'
Messages postés
26
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
19 août 2011

ok je regarde ça meme si je comprend pas toutes les variable merci en tout cas