Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //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
- //(il n'y a rien sur la scène)
- import flash.events.Event;
- var p1:Pacman;//notre pacman
- var p2:Pacman;// destination 1
- var p3:Pacman;// destination 2
- var p4:Pacman;// destination 4
- var centerX:Number = stage.stageWidth / 2;//centre de l'écran
- var centerY:Number = stage.stageHeight / 2;
- var radius:Number = 150;//Rayon du cercle
- var angle:Number = Math.PI / 4;// angle initial : 45 degres
- var speed:Number = 0.05;// vitesse de rotation
- var coef:Number; //coef directeur
- var theta:Number;
- init();
- function init():void
- {
- p1 = new Pacman();// on place pacman au centre
- p1.x = centerX;
- p1.y = centerY;
- p1.rotation = 90;
- p2 = new Pacman(); // on place la destination 1 (bas - droite)
- p2.x = p1.x + (Math.sqrt(2)/2 * radius);
- p2.y = p1.y + (Math.sqrt(2)/2 * radius);
- p3 = new Pacman(); // destination 2 (haut - droite)
- p3.x = p1.x + (Math.sqrt(2)/2 * radius); trace('p3.x =',p3.x);
- p3.y = p1.y - (Math.sqrt(2)/2 * radius); trace('p3.y =',p3.y);
- p4 = new Pacman(); // destination 4 (centre)
- p4.x = centerX;
- p4.y = centerY;
- addChild(p1);
- addChild(p2);
- addChild(p3);
- addChild(p4);
- if (p1.x < p2.x)
- {
- p1.addEventListener(Event.ENTER_FRAME, line);
- }
- }
- function line(pEvt:Event):void // mouvement de p1 vers p2
- {
- if (pEvt.currentTarget.x < p2.x)
- {
- pEvt.currentTarget.x += 1;
- //trace("x = ", pEvt.currentTarget.x);
- }
- if (pEvt.currentTarget.y < p2.y)
- {
- pEvt.currentTarget.y += 1;
- //trace("y = ", pEvt.currentTarget.y);
- }
- if (pEvt.currentTarget.x == 382) //si p1 atteint p2, on commence la rotation
- {
- addEventListener(Event.ENTER_FRAME, rotate);
- //trace('Rotation Enabled');
- }
- //pEvt.currentTarget.rotation = 45;
- theta = (Math.atan2(p1.x, p1.y) * 180) / Math.PI;
- pEvt.currentTarget.rotation = theta;
- }
- function rotate(pEvt:Event):void // mouvement de p1 vers p3
- {
- p1.x = centerX + Math.cos(angle) * radius;
- p1.y = centerY + Math.sin(angle) * radius;
- angle += speed;
- //trace("angle = ",angle);
- //p1.rotation = 60;
- if (p1.x >= 381 && p1.y >= 93 && p1.y < 98) // si atteint p3, on commence le dernier mouvement
- {
- p1.removeEventListener(Event.ENTER_FRAME, line);
- addEventListener(Event.ENTER_FRAME, line2);
- }
- theta = 180 - (Math.atan2(Math.cos(angle) * radius,Math.sin(angle) * radius) * 180 ) / Math.PI;
- p1.rotation = theta;
- //p1.rotation = theta;
- //trace(theta);
- }
- function line2(pEvt:Event):void //mouvement de p1 à p4
- {
- removeEventListener(Event.ENTER_FRAME, rotate);
- //trace('auoiiiiiiii');
- if (p1.x > centerX)
- {
- p1.x -= 1.2; // calculer le coef dir !!
- //trace("x = ", p1.x);
- }
- if (p1.y < centerY)
- {
- p1.y += 1;
- //trace("y = ", p1.y);
- }
- theta = 135;
- p1.rotation = theta;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement