Is anyone able to troubleshoot this glitch I have with my game?
Is anyone able to troubleshoot the glitch I have when the ball hits the left side of the screen in my game. This doesn't happen on the right side so I'm not too sure why this is happening. Here is my code:
var xDirection:Number = 10;
var yDirection:Number = -10;
var targetX:Number = player_mc.x;
var easing:Number = 7;
var playerScore:Number;
function resetBallPosition():void
{
xDirection = 10;
yDirection = -10;
ball_mc.x = 2
ball_mc.y = 11
}
function checkHitLocation(player:MovieClip):void
{
var hitPercent:Number;
var ballPosition:Number = ball_mc.x - player_mc.x;
hitPercent = (ballPosition / player_mc.width);
xDirection = hitPercent * 30;
yDirection *= 1.025;
}
function initializeGame(event:MouseEvent):void
{
playerScore = 0;
showScore();
showStart();
player_mc.addEventListener(Event.ENTER_FRAME, movePlayer);
ball_mc.addEventListener(Event.ENTER_FRAME, moveBall);
bg_mc.removeEventListener(MouseEvent.CLICK, initializeGame);
}
function endGame():void
{
player_mc.removeEventListener(Event.ENTER_FRAME, movePlayer);
ball_mc.removeEventListener(Event.ENTER_FRAME, moveBall);
bg_mc.addEventListener(MouseEvent.CLICK, initializeGame);
text_mc.text = 'CLICK TO PLAY AGAIN';
text_mc.visible = true
start_mc.visible = false;
}
function moveBall(event:Event):void
{
if(ball_mc.x <= 0)
{
xDirection *= -1;
text_mc.visible = false;
start_mc.visible = false;
}
else if(ball_mc.x >= stage.stageWidth - ball_mc.width)
{
xDirection *= -1;
text_mc.visible = false;
start_mc.visible = false;
}
if(ball_mc.hitTestObject(player_mc))
{
yDirection *= -1;
ball_mc.y = player_mc.y - ball_mc.height - player_mc.height/2;
checkHitLocation(player_mc);
playerScore ++;
showScore();
text_mc.visible = false;
start_mc.visible = false;
}
if(ball_mc.y <= 0)
{
yDirection *= -1;
//resetBallPosition();
text_mc.visible = false
start_mc.visible = false;
}
else if(ball_mc.y >= stage.stageHeight - ball_mc.height)
{
endGame();
resetBallPosition();
showScore();
}
ball_mc.x += xDirection;
ball_mc.y += yDirection;
}
function movePlayer(event:Event):void
{
if(this.mouseX <= player_mc.width/2)
{
targetX = 0;
start_mc.visible = false;
}
else if(this.mouseX >= stage.stageWidth - player_mc.width/2)
{
targetX = stage.stageWidth - player_mc.width;
start_mc.visible = false;
}
else
{
targetX = this.mouseX - player_mc.width/2;
start_mc.visible = false;
}
player_mc.x += (targetX - player_mc.x) / easing;
}
function showScore():void
{
score_mc.text = "Score: " + playerScore;
start_mc.visible = false;
}
function showStart():void
{
start_mc.text = 'CLICK SCREEN TO START';
start_mc.visible = true;
}
showStart();
bg_mc.addEventListener(MouseEvent.CLICK, initializeGame);
