code in frame 1 layer 1


//paddleBounce

//improve ball-paddle algorithm



init();



function init(){

  //turn off the mouse pointer

  Mouse.hide();



  //initialize ball speed

  ball.dx = 15;

  ball.dy = 5;

} // end init



player.onEnterFrame = function(){

  player._y = _root._ymouse;

} // end enterFrame



ball.onEnterFrame = function(){

  ball.move();

  ball.checkBoundaries();

  ball.checkPaddles();

} // end enterFrame



ball.move = function(){

  ball._x += ball.dx;

  ball._y += ball.dy;

} // end move



ball.checkBoundaries = function(){

  //bounce off top and bottom walls

  if (ball._y < 0){

    ball.dy = -ball.dy;

  } // end if



  if (ball._y > Stage.height){

    ball.dy = -ball.dy;

  } // end if



  //if past left of screen, opponent scores 

  //wrap for now

  if (ball._x < 0){

    trace("Opponent Scores");

    ball._x = Stage.width;

  } // end if



  //if past right of stage, player scores, 

  //bounce for now

  if (ball._x > Stage.width){

    trace ("Player scores");

    ball.dx = -ball.dx;

  } // end if

} // end checkboundaries



ball.checkPaddles = function(){

  //check to see if ball touches paddle

  if (ball.hitTest(player)){

    //simply bounce off for now

    ball.dx = -ball.dx;

    ball.dy = getDy(player);

  } // end if

} // end checkPaddles

  

function getDy(paddle){

  //determines dy based on where ball hits paddle.

  

  //relY is relative Y of ball to paddle

  relY = ball._y - paddle._y;

  //trace relY



  //relPerc is relY / height of paddle

  //will range from -.5 to +.5

  relPerc = relY / paddle._height;

  //trace (relPerc);



  //new DY ranges from -15 to +15

  newDy = relPerc * 30;

  //trace (newDy);

  return newDy;



} // end getDy