[FONT=arial][COLOR=#222222]Hello I’m making a simple test game to learn AS3. I’ve started with learning the codes for keyboard press movements. Then when I got to the wall collision, I’m stumped. The trace output keeps firing regardless if the player touches the wall or not.
I’d appreciate if any of you can help a beginner like me
I just have 2 movieclip objects on the stage, player_mc and wall_mc.
Here’s my .as code so far
package {
import flash.display.*;
import flash.events.*;
public class testhit extends MovieClip {
// initialize arrow variables
public var leftArrow:Boolean = false;
public var rightArrow:Boolean = false;
public var upArrow:Boolean = false;
public var downArrow:Boolean = false;
// player speed
public var speed:Number = 10;
// game setup
public function startGame() {
this.addEventListener(Event.ENTER_FRAME,gameLoop);
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressedDown);
stage.addEventListener(KeyboardEvent.KEY_UP,keyPressedUp);
stage.addEventListener(Event.ENTER_FRAME,movePlayer);
}
// arrow keys pressed
public 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;
}
}
// arrow keys released
public 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;
}
}
// player movement
public function movePlayer(event:Event) {
if (leftArrow) {
player_mc.scaleX = -1;
player_mc.x -= speed;
}
if (rightArrow) {
player_mc.scaleX = 1;
player_mc.x += speed;
}
if (upArrow) {
player_mc.y -= speed;
}
if (downArrow) {
player_mc.y += speed;
}
}
// check wall collission loop
public function gameLoop(event:Event) {
wallHit();
}
// wall collission
public function wallHit() {
if (wall_mc.hitTestObject(player_mc)) {
trace("hit");
}
}
}
}
[/COLOR][/FONT]