// Copyrights
// Benoît Freslon
// https://www.benoitfreslon.com
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
// Constantes (Vous pouvez modifier ces valeurs)
const acceleration:Number = 0.1;
const decceleration:Number = 0.9;
const speedMax:Number = 5;
// Variables
var speedX:Number = 0;
var speedY:Number = 0;
// Etats des touches
var leftPressed:Boolean = false;
var rightPressed:Boolean = false;
var upPressed:Boolean = false;
var downPressed:Boolean = false;
// Evénements clavier
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
function keyDown(e:KeyboardEvent):void {
switch (e.keyCode) {
case 37 :
leftPressed = true;
break;
case 38 :
upPressed = true;
break;
case 39 :
rightPressed = true;
break;
case 40 :
downPressed = true;
break;
}
}
function keyUp(e:KeyboardEvent):void {
switch (e.keyCode) {
case 37 :
leftPressed = false;
break;
case 38 :
upPressed = false;
break;
case 39 :
rightPressed = false;
break;
case 40 :
downPressed = false;
break;
}
}
// Evénement répété toutes les images
pig.addEventListener(Event.ENTER_FRAME, enterFrame);
function enterFrame(e:Event):void {
// Si un touche est enfoncée on augmente la valeur de la vitesse avec la valeur d'accélération
if (upPressed) {
speedY -= acceleration;
} else if (downPressed) {
speedY += acceleration;
} else {
// Si la touche haut et bas sont relâchées alors on diminue la vitesse avec la valeur de decceleration
speedY *= decceleration;
}
if (leftPressed) {
speedX -= acceleration;
} else if (rightPressed) {
speedX += acceleration;
} else {
speedX *= decceleration;
}
// Ne pas oublier de limiter les vitesses
if (speedX > speedMax) {
speedX = speedMax;
}
if (speedX <-speedMax) {
speedX = - speedMax;
}
if (speedY > speedMax) {
speedY = speedMax;
}
if (speedY <-speedMax) {
speedY = - speedMax;
}
// Déplacer le cochon constamment
pig.x += speedX;
pig.y += speedY;
// Affiche les valeurs sur l'interface
tValues.text = "speedX: " + speedX + "\nspeedY: " + speedY;
}
// RAZ du cochon
stage.addEventListener(MouseEvent.CLICK , click);
function click(e:MouseEvent):void {
pig.x = stage.stageWidth / 2;
pig.y = stage.stageHeight / 2;
}