Boules qui rebondissent, probleme de code

Résolu
cs_jaya Messages postés 26 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 19 août 2011 - 22 janv. 2009 à 18:56
cs_jaya Messages postés 26 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 19 août 2011 - 22 janv. 2009 à 20:47
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

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
22 janv. 2009 à 19:25
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'
3
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
22 janv. 2009 à 19:43
"aider", oui "refaire à ta place", non.

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

Peg'
3
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
22 janv. 2009 à 20:01
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'
3
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
22 janv. 2009 à 20:18
il te manque un "this" devant la variable "vitesse" de la 3ème ligne.

Peg'
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jaya Messages postés 26 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 19 août 2011
22 janv. 2009 à 19:40
peut tu m aider à refaire le code stp 
0
cs_jaya Messages postés 26 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 19 août 2011
22 janv. 2009 à 19:51
oui sa marche pas les boules tombent d'un coup
0
cs_jaya Messages postés 26 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 19 août 2011
22 janv. 2009 à 20:15
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
0
cs_jaya Messages postés 26 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 19 août 2011
22 janv. 2009 à 20:19
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
0
cs_jaya Messages postés 26 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 19 août 2011
22 janv. 2009 à 20:24
ou que les boules facent  des bond de haut en bas et ce stop au milieu...
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
22 janv. 2009 à 20:28
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'
0
cs_jaya Messages postés 26 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 19 août 2011
22 janv. 2009 à 20:47
ok je regarde ça meme si je comprend pas toutes les variable merci en tout cas 
0