This is an AS3 problem:
I am trying to set up a hitTest scoring situation.
if the Bee touches the Maze
then the score goes up +1.
the score code doesn’t work, and it also seems to
stop the KeyBoard input from being “listened” to.
I also get an error message that says this,
"1180: Call to a possibly undefined method showGameScore.
This is the Code:
package {
import flash.display.*;
import flash.text.*;
import flash.events.*;
public class kbcdScore extends MovieClip {
private static const pointsForGoodTouch:int = 25;
private static const pointsForBadTouch:int = -15;
public function kbcdScore() {
//declaring a new TextField object that will hold the score
var gameScore:int;
var gameScoreField:TextField;
// new TextField to display score
gameScoreField = new TextField();
//add it to the stage
addChild(gameScoreField);
gameScore = 0;
showGameScore();
//this code listens for the collision
addEventListener(Event.ENTER_FRAME, checkCollision);
function checkCollision(event:Event) {
// test playerBee versus maze
if (playerBee.hitTestObject(maze)) {
gameScore += pointsForGoodTouch;
showGameScore();
} else {
gameScore += pointsForBadTouch;
showGameScore();
}
}
//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, moveBee);
// 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 moveBee(event:Event) {
var speed:Number = 5;
if (leftArrow) {
playerBee.x -= speed;
}
if (rightArrow) {
playerBee.x += speed;
}
if (upArrow) {
playerBee.y -= speed;
}
if (downArrow) {
playerBee.y += speed;
}
}
}
}
}