Hi Cara,

Hmmm...I'm going to have to try that. When you put it like that it
looks pretty easy. Essentially, all I should have to do is create a
class to hold something like a wall and define its maximum x, y, and z
boundries and detect if the player comes into contact with any point
of the wall, door, whatever.  I've got to try this as it sounds


On 12/6/10, Cara Quinn <caraqu...@draconisentertainment.com> wrote:
> Hi Rynhardt;
> ACtually collision detection really isn't that expensive. Here's some C++
> for checking two axis-aligned bounding boxes in 3D.
> // set the lower and upper coordinates of each box
> // and set their position
> Box A (-1.0, -1.0, -1.0, 1.0, 1.0, 1.0);
> A.setPosition (3.0, 3.0, 3.0);
> Box B (-1.0, -1.0, -1.0, 1.0, 1.0, 1.0);
> B.setPosition (0.0, 0.0, 0.0);
> // check to see if any part of the above boxes touch or overlap
> if((A.lower.x <= B.upper.x && A.lower.y <= B.upper.y && A.lower.z <=
> B.upper.z) && (A.upper.x >= B.lower.x && A.upper.y >= B.lower.y && A.upper.z
>>= B.lower.z)) {
> // Manage collision
> }
> In this case, the two boxes are not touching, as the bottom-most point of A
> is at 2.0, 2.0, 2.0 and the top-most point of B is at 1.0, 1.0, 1.0 so
> there's a length of one coordinate between them. Does this make sense?…
> The above code is all you need to detect whether two boxes in 3D space touch
> or overlap each other. This really isn't overly intensive. YOu can also
> check for collision of spheres easily too, but it is a bit more expensive
> than the above, but it is equally simple, relying on the Pythagorus theorem.
> Basically you can just check the length of the line between the centers of
> two spheres and see if it's less than or greater than the radii of each
> sphere. So if the two radii add up to (or are greater than) the distance you
> just found, then the spheres are touching or overlapping.
> On the subject of arrays, (depending on the type of array) it's not
> necessarily any less expensive to access an array vs doing something like
> the above every frame of a game, since the system may need to move through
> the array to find what it needs, regardless of how easy it looks to the
> user. so just because you can call an element of an array as in array[x]
> doesn't mean the system doesn't need to do any work to access that element.
> There are faster ways of storing data which are easier on the system in C++
> but I'm not as familiar with them as I'd like, so forgive me but I just know
> they're there, but have no explanation for you. :)
> Anyway, hope this sheds some light…
> Smiles,
> Cara :)

Gamers mailing list __ Gamers@audyssey.org
If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org.
You can make changes or update your subscription via the web, at
All messages are archived and can be searched and read at
If you have any questions or concerns regarding the management of the list,
please send E-mail to gamers-ow...@audyssey.org.

Reply via email to