Jump to content

  • Log In with Google      Sign In   
  • Create Account


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


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
4 replies to this topic

#1 Sam Sandeep   Members   -  Reputation: 123

Like
0Likes
Like

Posted 01 January 2013 - 11:55 PM

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.  



Sponsor:

#2 JinixVomitorium   Members   -  Reputation: 151

Like
0Likes
Like

Posted 02 January 2013 - 03:12 AM

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.


Edited by JinixVomitorium, 02 January 2013 - 03:15 AM.

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......


#3 Sam Sandeep   Members   -  Reputation: 123

Like
0Likes
Like

Posted 02 January 2013 - 03:15 AM

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.



#4 JinixVomitorium   Members   -  Reputation: 151

Like
0Likes
Like

Posted 02 January 2013 - 04:03 AM

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 }


Edited by JinixVomitorium, 02 January 2013 - 04:07 AM.

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......


#5 Sam Sandeep   Members   -  Reputation: 123

Like
0Likes
Like

Posted 02 January 2013 - 04:15 AM

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.  






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS