Guest User

Untitled

a guest
Jan 22nd, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // J'ai essayé la méthode du prof mais j'ai des soucis avec l'arrêt/relance de la balle ...
  2.  
  3. var barreG:MovieClip = new Barre();
  4. var barreD:MovieClip = new Barre();
  5. var balle:MovieClip = new Balle();
  6. balle.x=stage.stageWidth*25/100+barreG.width/2+balle.width/2;
  7. balle.y=stage.stageHeight/2;
  8. addChild(balle);
  9.  
  10. var sens:Boolean=false; // false = déplacement vers la droite, true = déplacement vers la gauche
  11.  
  12. barreG.x=stage.stageWidth*25/100;
  13. barreG.y=stage.stageHeight/2;
  14. barreD.x=stage.stageWidth*75/100;
  15. barreD.y=stage.stageHeight/2;
  16. addChild(barreG);
  17. addChild(barreD);
  18.  
  19. stage.addEventListener(Event.ENTER_FRAME, deplacementD);
  20. stage.addEventListener(MouseEvent.CLICK, arret);
  21.  
  22. function arret(e:MouseEvent):void {
  23.     stage.removeEventListener(Event.ENTER_FRAME, deplacementD); // On vire tous les déplacements qui pourraient avoir lieu
  24.     stage.removeEventListener(Event.ENTER_FRAME, deplacementG);
  25.     stage.addEventListener(MouseEvent.CLICK, relance);
  26. }
  27.  
  28. function relance(e:MouseEvent):void {
  29.     // On regarde quel était le dernier état du booléen pour relancer la balle dans le même sens qu'elle avait avant
  30.     if (sens) {
  31.         stage.addEventListener(Event.ENTER_FRAME, deplacementD);
  32.         trace(sens);
  33.     }
  34.     else {
  35.         stage.addEventListener(Event.ENTER_FRAME, deplacementG);
  36.         trace(sens);
  37.     }
  38. }
  39.  
  40. function deplacementD(e:Event):void {
  41.     if (!sens) {
  42.         balle.x += 5;
  43.         if (balle.x >= (barreD.x - barreD.width/2 - balle.width/2)) {
  44.             // Si on rentre ici c'est que la balle est arrivée jusqu'à la barre de droite.
  45.             // Donc on enlève l'eventListener qui fait que la balle se déplace vers la droite (ENTER_FRAME) pour rajouter
  46.             // un eventListener qui la fera partir vers la gauche
  47.             sens=true;
  48.             stage.removeEventListener(Event.ENTER_FRAME, deplacementD);
  49.             stage.addEventListener(Event.ENTER_FRAME, deplacementG);
  50.         }
  51.     }
  52. }
  53.  
  54. function deplacementG(e:Event):void {
  55.     if (sens) {
  56.         balle.x-=5;
  57.         if (balle.x <= (barreG.x + barreG.width/2 + balle.width/2)) {
  58.             // Pareil qu'au-dessus mais dans l'autre sens
  59.             sens=false;
  60.             stage.removeEventListener(Event.ENTER_FRAME, deplacementG);
  61.             stage.addEventListener(Event.ENTER_FRAME, deplacementD);
  62.         }
  63.     }
  64. }
Add Comment
Please, Sign In to add comment