Une balle qui rebondit des quatres côtés

Résolu
carasmel Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je voudrais realiser une balle qui rebondit de tout les côtés d'un document de 550*400 en flash actionScript 2.0. j'ai ecrit ce bout de code mais il ne marche pas correctement. la derniere etape la balle tremblote sur place. aider moi svp

onClipEvent(enterFrame){
if ((this._x<500)and(this._y>100)){
this._x+=5;
this._y-=5; }
else if ((this._x>=270)and(this._y<=100) and(this.y>=-3)){
this._x-=7;
this._y-=7; }
else if ((this._x>0)and(this._y<100)){
this._x-=15;
this._y+=10; }
else if ((this._x<200)and(this._y<400)){
this._x+=25;
this._y+=25;
}
}




5 réponses

mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
En fait je pense qu'il y a plus simple. Supposons que tu définissent des membres _xmin, _ymin, _xmax et _ymax contenant respectivement 0, 100, 200, 400 et deux membres _dx et _dy (par exemple initialisés tout deux à 25) qui indique de combien de pixel on se décale.

xnext = this._x + this._dx;
ynext = this._y + this._dy;

if ((xnext < this._xmin) or (xnext > this._xmax)){
  this._dx = - this._dx;
}

if ((ynext < this._ymin) or (ynext > this._ymax)){
  this._dy = - this._dy;
}

this._x = xnext;
this._y = ynext;


Bonne chance
0
carasmel Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
comment definir des membres? je viens à peine de commencer à programmer en flash stp aide moi
0
carasmel Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
merci:) je viens d'essayer mais ma balle ne bouge plus:( ! ou je dois mettre ce code? dans l'evenement du clip meme ou juste sur le calque? ça ira? j'ai essayer tout les deux.
/* sur le calque*/
boule.onEnterFrame=function(){

_xmin=0;
_ymin=100;
_xmax=200;
_ymax=400;
_dx=25;
_dy=25;




xnext = this._x + this._dx;
ynext = this._y + this._dy;


if ((xnext < this._xmin) or (xnext > this._xmax)){
this._dx = - this._dx;
}

if ((ynext < this._ymin) or (ynext > this._ymax)){
this._dy = - this._dy;
}

this._x = xnext;
this._y = ynext;
}
/***********************/

/*sur l'evenement du clip*/

onClipEvent(EnterFrame){
_xmin=0;
_ymin=100;
_xmax=200;
_ymax=400;
_dx=25;
_dy=25;




xnext = this._x + this._dx;
ynext = this._y + this._dy;


if ((xnext < this._xmin) or (xnext > this._xmax)){
this._dx = - this._dx;
}

if ((ynext < this._ymin) or (ynext > this._ymax)){
this._dy = - this._dy;
}

this._x = xnext;
this._y = ynext;
}
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Ben l'initialisation dans le constructeur et le morceau que je t'ai donné dans la fonction qui anime la balle, à la place de ton ancien code.

Mais ceci dit tu n'es pas cohérent dans ton code : un coup tu utilises _xmin (etc...) et un coup this._xmin (qui sont donc deux variables différentes a priori). Ces variables doivent être utilisées comme _x et _y, en tant que membre de classe et donc préfixées par "this.".

Voilà je ne peux pas t'en dire beaucoup plus car je ne fais pas de flash, je programme dans d'autres langages.
0
carasmel Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
merci j'ai reussi à le faire:)
0

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

Posez votre question
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Parfait, bravo :-) N'hésite pas à reporter le code ici pour les personnes qui pourraient tomber sur ce fil de discussion.
0