Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!


1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


open gl 2d collision detection


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
7 replies to this topic

#1 hello_there   Members   -  Reputation: 122

Like
Likes
Like

Posted 28 November 2001 - 11:52 AM

my game was progressing nicely untill i got to making collision detection. i just can figure it out . Can someone please help me. my game is like the 2d zelda game. i''ve spent hours trying to figure out a way but nothing works.

Sponsor:

#2 jenova   Members   -  Reputation: 122

Like
Likes
Like

Posted 28 November 2001 - 12:05 PM

OpenGL has nothing to do with collision detection. i presume if you are doing a 2D based game you will be using a tile/index based system. all you would need to do is test the tile next to the players current position in the direction the player is trying to go. if the tile index in the destination is the index of a blocking object (i.e a tree) then deny the player from moving. otherwise allow the player to move in that direction.

To the vast majority of mankind, nothing is more agreeable than to escape the need for mental exertion... To most people, nothing is more troublesome than the effort of thinking.

#3 DraconicArchmage   Members   -  Reputation: 122

Like
Likes
Like

Posted 28 November 2001 - 12:07 PM

Collision to what? The world (walls, pillars, etc.), sprites, objects? All three may require different wats of detecting collision. Unless you want to bust out the trigonometry in your game and resigning the entire map and engine, you''re probably going to use a simple method. Just think rectangles overlapping, or distance formula (for circula collisions).

#4 griffenjam   Members   -  Reputation: 193

Like
Likes
Like

Posted 28 November 2001 - 12:11 PM

Collision detection in 2d is fairly easy as long as you remember that a game is nothing but a thin layer of pretty (and sometimes not so pretty) pictures on top of a very thick layer of numbers.

Lets say that an object with a radius of 1.0f is falling twords the ground, which is at 0.0f on the y axis. Each frame you will decrement the y value of your falling object, also do a test so see if the object is a 1.0f on the y axis, if it is then it is touching the ground (remember, the object sticks out by 1.0f).
It is fairly easy to do unless your object are strangly shapped, square and circle collisions are easy so try to make your objects with that in mind. Also, try not to check for collisions unless you have to, it can take along time if you have alot of objects.

Jason Mickela
ICQ : 873518
E-Mail: jmickela@sbcglobal.net
------------------------------
"Evil attacks from all sides
but the greatest evil attacks
from within." Me
------------------------------


#5 hello_there   Members   -  Reputation: 122

Like
Likes
Like

Posted 28 November 2001 - 01:23 PM

can you please post a bit of code for an example?

#6 jenova   Members   -  Reputation: 122

Like
Likes
Like

Posted 28 November 2001 - 01:35 PM

u gotta be kidding.

try "www.google.com" and searching under "2d collision detection+examples+programming".

To the vast majority of mankind, nothing is more agreeable than to escape the need for mental exertion... To most people, nothing is more troublesome than the effort of thinking.

#7 hello_there   Members   -  Reputation: 122

Like
Likes
Like

Posted 28 November 2001 - 05:17 PM

i''m only a newbie.(obviously)
this is my first game i know i should have made something easier but this is sort of easy exept for collision detection.

#8 Maximus   Members   -  Reputation: 124

Like
Likes
Like

Posted 29 November 2001 - 06:40 PM

Some semi-pseudocode semi-real for 2d bounding box collision:
  
bool PointInsideBox(box_t box, point_t point)
{
if (point.x >= box.x && point.x <= box.x+box.width)
if (point.y >= box.y && point.y <= box.y+box.height)
return true;
return false;
}

bool CheckCollision(box_t box1, box_t box2)
{
int i;
for (i=0;i<4;i++) {
if (PointInsideBox(box1,box2.corner[i]))
return true;
if (PointInsideBox(box2,box1.corner[i]))
return true;
}
return false;
}





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