Results 1 to 2 of 2

Thread: Stop mouse paddle passing over ball?

  1. #1
    2
    posts
    Registered User

    Stop mouse paddle passing over ball?

    I'm having problems of the mouse controlled paddle being able to appear on the other side of the ball. The paddle's Y movement is controlled by the mouse, but the X is animated on mouseclick at a different frame rate than the ball.

    I am rewriting to use a "delta" timer so I thought I would put this out there so I have some more ideas when I get back to it.

    So the paddle's y is set by a MouseMove event, the paddle's x is set by a 15ms timer based on a long switch statement based on the png frames:
    Code:
                    switch (this.angle)
                    {
                        case 0:
                        footX = NaN;
                        break;
                        case 1:
                        footX = -24;
                        break;
                        case 2:
                        footX = -23;
                        break;
                        case 3:
                        footX = -21;
    
    etc.
    I move the ball like this every 30ms:
    Code:
            private function move():void
            {
                    ball.x += ball.speedX;
                    ball.y += ball.speedY;
            }
    then check for collisions with the paddles (I think I am going to rewrite this to check row x first then hitTestPoint individual paddles)

    Code:
    footGlobal = team.men[i].localToGlobal(regPoint);
    footGlobal.x +=  table.team1.footX;
    ballGlobal = ball.localToGlobal(regPoint);
    dx = ballGlobal.x - footGlobal.x;
    dy = ballGlobal.y - footGlobal.y;
    dist = Math.sqrt(dx * dx + dy * dy);
    minDist = ball.radius + 15;
                                
    if (dist < minDist)
    {
    collide(team.men[i], footGlobal, dx, dy);
    I then calculate the angle and bounce it off that side. but if the paddle moves too fast it can pass over without colliding. Could anyone help suggest a more accurate method?

    Also, is it bad practice to have objects running at different frame rates?

    Thanks
    Last edited by bugi; June 1st, 2008 at 01:45 PM.

  2. #2
    I thought about this when I was writing my own pong game but never really implemented it, anyway my idea was pretty simple.

    Once the ball crossed a certain X (a line very close to where the paddle is), you just perform a check on Y of the paddle and ball do all of your hitTesting that way.

    Code:
    if(ball._x <= paddle._width)
    {
       if(ball._y < paddle._y  && ball._y > paddle._y-height)
             hit()
     }
    Something like that, I hope I explained this clearly enough and more importantly I hope this works as I haven't done any tests yet!

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Home About kirupa.com Meet the Moderators Advertise

 Link to Us

 Credits

Copyright 1999 - 2012