Collision Detection HELP! openGL SDL c++, 2D top down racing game

Started by
3 comments, last by samsandeep_e 11 years, 3 months ago

Hi,

I'm trying to build a simple top down car racing game using SDL, I'm using openGL for rendering. I've drawn the track using parallel bezier curves and taking the points and drawing them as Quads with texture. I've got the car physics up and running.

Now, I would like start off with the collision between the car and the track. Could anyone help me out by giving a simple and practical solution for this.

Advertisement

Ive never used openGL but if the theory is the same, you need to constantly compair the coordinates of the front, back, left, right of your cars with one another, then set up conditions when the cars are toutching to apply the collision physics.

//checks if the x coordinates of both objects are within the same range

"if (starting car1 x > starting car2 x ) and (ending car1 x < ending car 1 x) then

{

///// checks if y coordinates of both objects are in the same range

if (srarting car1 y > starting car2 y) and (ending car1 y < ending car2 y) then

{

///apply physics

}

}

the theory is the same for the track. though i think you would need to change the ands to ors and reverse the symbols.

since you have a curved track you may need to use an algorything to calculate the points on the curve to compair to.

add me on skype, i need some new associates for coding.

skype: daniel.lamonds

c++, Visual basic, fortran, html/5, css, php,java script, sql, others......

Ive never used openGL but if the theory is the same, you need to constantly compair the coordinates of the front, back, left, right of your cars with one another, then set up conditions when the cars are toutching to apply the collision physics.

//checks if the x coordinates of both objects are within the same range

"if (starting car1 x > starting car2 x ) and (ending car1 x < ending car 1 x) then

{

///// checks if y coordinates of both objects are in the same range

if (srarting car1 y > starting car2 y) and (ending car1 y < ending car2 y) then

{

///apply physics

}

}

Thanks for the reply.

But I'm first looking to check the collision between the track edges and the car, so the car always stays in the track. Currently there are no AI cars, I'm planning to do that after the car-track collision is fixed.

Its the same method. compare the left side of the car coordinates to the left side of the track coordinates, and the right side of the car coordinates to the right side of the track coordinates. As i said, the best way i can think of to map out the track coordinates is using calculus to find the curve x,y.

then when the condition that the curve coordinates equals the car coordinates, set the car x coordinates equal to the curve x coordinates - 1.

thae hardest part for you is calculating the coordinates of the track. search up some calculus equations.

if car.x <= track.left

{ car.x = track.left + 1}

if car.x >= track.right

{ car.x = track.right - (car.x + car.width) - 1 }

add me on skype, i need some new associates for coding.

skype: daniel.lamonds

c++, Visual basic, fortran, html/5, css, php,java script, sql, others......

Its the same method. compare the left side of the car coordinates to the left side of the track coordinates, and the right side of the car coordinates to the right side of the track coordinates. As i said, the best way i can think of to map out the track coordinates is using calculus to find the curve x,y.

then when the condition that the curve coordinates equals the car coordinates, set the car x coordinates equal to the curve x coordinates - 1.

thae hardest part for you is calculating the coordinates of the track. search up some calculus equations.

if car.x <= track.left

{ car.x = track.left + 1}

if car.x >= track.right

{ car.x = track.right - (car.x + car.width) - 1 }

Thanks.

I already have the co-ordinates for the track. I've drawn the track by drawing many bezier curves from quadratic equations, where the last point of the first curve is the first point of the second curve and so on. I have fixed distance for the width of the track, so i draw the other side as well. So, i guess i have all the points needed to calculate the collision.

This topic is closed to new replies.

Advertisement