Jump to content
  • Advertisement
Sign in to follow this  
Crusable77

Pong

This topic is 2134 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello,

I am wanting to make a pong clone to test my new knowledge with Java and slick. i haven't started anything yet but im planning it out. I am just a it confused on how you get the direction the ball goes after you hit it with the paddle. I don't know anything about physics (im taking it in school though). do i just randomly generate a direction or is there some stupid long mathematical equation thanks for any help.

Share this post


Link to post
Share on other sites
Advertisement
"stupid long mathematical equation"[/quote]
That doesn't sound good regardless of how much I spin it around in my head.

Anyway, you could just go with some simple conditional statements and inverse the direction of the ball. If you want something more complex you'd have to do some vector maths with at least the ball's direction vector, the paddle's forward vector and the position the ball hit the paddle.


[source lang="cpp"] // edge of playing field
if (pong.ball.centre_y > 0.6f)
{
pong.ball_velocity_y = -ball_speed;
} else if (pong.ball.centre_y < -0.6f)
{
pong.ball_velocity_y = ball_speed;
}
// ball hit a paddle on the right side
if (pong.ball_velocity_x > 0 && collides(&pong.ball, &pong.bats[1]) )
{
pong.ball_velocity_x = -pong.ball_velocity_x;
}
// ball hit a paddle on the left side
if (pong.ball_velocity_x < 0 && collides(&pong.ball, &pong.bats[0]) )
{
pong.ball_velocity_x = -pong.ball_velocity_x;
}[/source] Edited by Tudor Nita

Share this post


Link to post
Share on other sites
Thanks, and about the stupid long mathematical equation thing, well its about 3 in the morning here and i really don't feel like doing long complex math. :)

Share this post


Link to post
Share on other sites
A simple model for a ball bouncing off a paddle (ignoring edge effects) is perfect reflection. If you use vectors, it has an elegant expression not at all complicated once you know some vector algebra. Note that if your paddle is perfectly vertical, this is equivalent to negating the x-component of the ball's velocity, so you could start by doing that instead and improve later on (perhaps by adding round edges).

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!