as3 question:
I have code that allows me to control the player by moving it around the stage with the arrows on my keyboard.
what if I want the player’s visual position to reflect the arrow as well.
as in the arrow is pointing like this --> BUT if user clicks the left arrow the arrow not only starts moving towards the left but looks like <–
the code I have is:
as always, grateful for your help.
package {
import flash.display.*;
import flash.text.*;
import flash.events.*;
public class KB_Control extends MovieClip {
public function KB_Control() {
//from keyboard
// initialize arrow variables
var leftArrow:Boolean = false;
var rightArrow:Boolean = false;
var upArrow:Boolean = false;
var downArrow:Boolean = false;
// set event listeners
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressedDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyPressedUp);
stage.addEventListener(Event.ENTER_FRAME, movePlayer);
// set arrow variables to true
function keyPressedDown(event:KeyboardEvent) {
if (event.keyCode == 37) {
leftArrow = true;
} else if (event.keyCode == 39) {
rightArrow = true;
} else if (event.keyCode == 38) {
upArrow = true;
} else if (event.keyCode == 40) {
downArrow = true;
}
}
// set arrow variables to false
function keyPressedUp(event:KeyboardEvent) {
if (event.keyCode == 37) {
leftArrow = false;
} else if (event.keyCode == 39) {
rightArrow = false;
} else if (event.keyCode == 38) {
upArrow = false;
} else if (event.keyCode == 40) {
downArrow = false;
}
}
// move every frame
function movePlayer(event:Event) {
var speed:Number = 5;
if (leftArrow) {
player.x -= speed;
}
if (rightArrow) {
player.x += speed;
}
if (upArrow) {
player.y -= speed;
}
if (downArrow) {
player.y += speed;
}
}
}
}
}