Advertisement
arkader

Pacman Trigo

May 13th, 2012
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Flash cs5, il y a 2 calques sur la scène, le premier est vide, et le deuxième nommé "Action" contient le code as3
  2. //(il n'y a rien sur la scène)
  3.  
  4. import flash.events.Event;
  5.  
  6. var p1:Pacman;//notre pacman
  7. var p2:Pacman;// destination 1
  8. var p3:Pacman;// destination 2
  9. var p4:Pacman;// destination 4
  10.  
  11. var centerX:Number = stage.stageWidth / 2;//centre de l'écran
  12. var centerY:Number = stage.stageHeight / 2;
  13.  
  14. var radius:Number = 150;//Rayon du cercle
  15. var angle:Number = Math.PI / 4;// angle initial : 45 degres
  16. var speed:Number = 0.05;// vitesse de rotation
  17. var coef:Number; //coef directeur
  18. var theta:Number;
  19.  
  20.  
  21.  
  22. init();
  23.  
  24.  
  25. function init():void
  26. {
  27.     p1 = new Pacman();// on place pacman au centre
  28.     p1.x = centerX;
  29.     p1.y = centerY;
  30.     p1.rotation = 90;
  31.  
  32.     p2 = new Pacman(); // on place la destination 1 (bas - droite)
  33.     p2.x = p1.x + (Math.sqrt(2)/2 * radius);
  34.     p2.y = p1.y + (Math.sqrt(2)/2 * radius);
  35.  
  36.     p3 = new Pacman(); // destination 2 (haut - droite)
  37.     p3.x = p1.x + (Math.sqrt(2)/2 * radius); trace('p3.x =',p3.x);
  38.     p3.y = p1.y - (Math.sqrt(2)/2 * radius); trace('p3.y =',p3.y);
  39.  
  40.     p4 = new Pacman(); // destination 4 (centre)
  41.     p4.x = centerX;
  42.     p4.y = centerY;
  43.  
  44.  
  45.     addChild(p1);
  46.     addChild(p2);
  47.     addChild(p3);
  48.     addChild(p4);
  49.  
  50.     if (p1.x < p2.x)
  51.     {
  52.         p1.addEventListener(Event.ENTER_FRAME, line);
  53.     }
  54.  
  55.  
  56. }
  57.  
  58. function line(pEvt:Event):void // mouvement de p1 vers p2
  59. {
  60.     if (pEvt.currentTarget.x < p2.x)
  61.     {
  62.         pEvt.currentTarget.x +=  1;
  63.         //trace("x = ", pEvt.currentTarget.x);
  64.     }
  65.  
  66.     if (pEvt.currentTarget.y < p2.y)
  67.     {
  68.         pEvt.currentTarget.y +=  1;
  69.         //trace("y = ", pEvt.currentTarget.y);
  70.     }
  71.  
  72.     if (pEvt.currentTarget.x == 382) //si p1 atteint p2, on commence la rotation
  73.     {
  74.         addEventListener(Event.ENTER_FRAME, rotate);
  75.  
  76.         //trace('Rotation Enabled');
  77.     }
  78.    
  79.     //pEvt.currentTarget.rotation = 45;
  80.     theta = (Math.atan2(p1.x, p1.y) * 180) / Math.PI;
  81.     pEvt.currentTarget.rotation = theta;
  82. }
  83.  
  84. function rotate(pEvt:Event):void // mouvement de p1 vers p3
  85. {
  86.  
  87.  
  88.     p1.x = centerX + Math.cos(angle) * radius;
  89.     p1.y = centerY + Math.sin(angle) * radius;
  90.     angle +=  speed;
  91.     //trace("angle = ",angle);
  92.    
  93.     //p1.rotation = 60;
  94.  
  95.     if (p1.x >= 381 && p1.y >= 93 && p1.y < 98) // si atteint p3, on commence le dernier mouvement
  96.     {
  97.         p1.removeEventListener(Event.ENTER_FRAME, line);
  98.         addEventListener(Event.ENTER_FRAME, line2);
  99.     }
  100.    
  101.    
  102.     theta = 180 - (Math.atan2(Math.cos(angle) * radius,Math.sin(angle) * radius) * 180 ) / Math.PI;
  103.     p1.rotation = theta;
  104.    
  105.     //p1.rotation = theta;
  106.     //trace(theta);
  107.  
  108. }
  109.  
  110. function line2(pEvt:Event):void //mouvement de p1 à p4
  111. {
  112.     removeEventListener(Event.ENTER_FRAME, rotate);
  113.     //trace('auoiiiiiiii');
  114.  
  115.     if (p1.x > centerX)
  116.     {
  117.        
  118.         p1.x -=  1.2; // calculer le coef dir !!
  119.         //trace("x = ", p1.x);
  120.     }
  121.  
  122.     if (p1.y < centerY)
  123.     {
  124.         p1.y +=  1;
  125.         //trace("y = ", p1.y);
  126.     }
  127.    
  128.     theta = 135;
  129.     p1.rotation = theta;
  130.  
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement