...

View Full Version : My program exploded... I can has help?



Cmptr_Prgrmr2B
03-24-2009, 02:54 AM
I am trying to recreate a simple version of Pong. I am almost positive that I coded it correctly, though I apparently didn't because it's not working. I would be much appreciative if someone would take a look at my code and point me in the right direction. I'll put the code up, but since this is Flash, I'll also put the actual program file up as an attachment.

Thanks,
Cmptr_Prgrmr2B


player.onEnterFrame = function() {
player._y = _root._ymouse;
}

opp.onEnterFrame = function() {
if (ball._y < opp._y) {
opp.dy = - opp.speed;
} else {
opp.dy = opp.speed;
}

opp._y += opp.dy;
}

init();

function init() {
mouse.hide();

ball.dx = 15;
ball.dy = 5;

opp.speed = 10;

playerScore = 0;
oppScore = 0;
}


ball.onEnterFrame = function() {
ball.move();
ball.checkBoundaries();
ball.checkPaddles();
}

ball.move = function() {
ball._x += ball.dx;
ball._y += ball.dy;
}

ball.checkBoundaries = function() {
if(ball._y < 0) {
ball.dy = -ball.dy;
}

if(ball._y > Stage.height) {
ball.dy = -ball.dy;
}

if(ball._x < 0) {
oppScore++;

ball._x = opp._x - 60;
ball._y = opp_y;
ball.dy = 0;
}

if(ball._x > Stage.width) {
playerScore++

ball._x = player._x + 50;
ball._y = player._y;
ball.dy = 0;
}
}

ball.checkPaddles = function() {
if (ball.hitTest(player)) {
ball.dx = -ball.dx;
ball.dy = getDy(player);
}
if (ball.hitTest(opp)) {
ball.dx = -ball.dx;
ball.dy = getDy(opp);
}
}

function getDy(paddle) {
relY = ball._y - paddle._y;
relPerc - relY / paddle._height;
trace ("relPerc");

newDy = relPerc * 30;
trace("NewDy");
return newDy;

}

gnomeontherun
03-24-2009, 09:59 AM
Well I would check your code at


if(ball._x < 0) {
oppScore++;

ball._x = opp._x - 60;
ball._y = opp_y;
ball.dy = 0;
}

because it doesn't reset the ball properly.

Then the ball doesn't really have any angle to its direction, so perhaps integrating some Math methods to give the ball a different direction based on where it hits the paddle.

Cmptr_Prgrmr2B
03-24-2009, 01:32 PM
I fixed part of my code like you posted, and went looking for a way to bounce the ball ad different angles. In my original code, this




ball.checkPaddles = function() {
if (ball.hitTest(player)) {
ball.dx = -ball.dx;
ball.dy = getDy(player);
}
if (ball.hitTest(opp)) {
ball.dx = -ball.dx;
ball.dy = getDy(opp);
}
}

function getDy(paddle) {
relY = ball._y - paddle._y;
relPerc - relY / paddle._height;
trace ("relPerc");

newDy = relPerc * 30;
trace("NewDy");
return newDy;

}


should have done it. For some reason it did not. Can you please look at this code as well?



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum