I do not use cubes though, I use spheres since they are a lot easier to deal with and requires less space to define.
/NJ
I do not use cubes though, I use spheres since they are a lot easier to deal with and requires less space to define.
/NJ
:::bows and waves to the crowd:::
i've been playing with a couple of ideas along the lines of collision detection in iso.
what i've come up with so far has been a combination of anchor points, bounding rectangles, low and high altitude of the object (which makes the bounding rect into a bounding 3d box), and a monochrome bitmap average cross section.
the anchor point is where a perpendicular line from the center point(or other reference point) of the object to the plane of the floor is.
the bounding rectangle is to encompass a shadow of the object in relation to this anchor, as though the object were flattened into the 2d plane of the tiles.
the bounding rectangle should have coordinates that treat the anchor as if it were (0,0), so that determining the world coordinates of the rect is easy.
the shadow(the mono bmp) fits within this bounding rect, and represents the average horizontal (perp to the z axis) cross section of the object. this wont be perfect, but i'm trying to go for simplicity and therefore speed here.
so, to do the actual collision detection, you first compare the lower and upper extents of the objects altitude. if there is an intersection in this range, then an actual collision may have occured(and you can check the shadow to determine the extent of the collision), otherwise, one object may be above another object, and again, you can check the bounding boxes to see how much.
my ideas on this topic, at this time, are still a little confusing, as i havent had time to refine them or test them.
Get off my lawn!
When I need to, I can do a quick check
against other sprites, or even against
my heightmapping to see if a collision
occured. It's very fast to check,
just as you would in 2d.
First check in 2d if they collide, then
do that last check if too far above or
below.
------------------
Jim Adams
Co-Designer 'The Light Befallen'
tcm@pobox.com
http://www.lightbefallen.com
When I need to, I can do a quick check
against other sprites, or even against
my heightmapping to see if a collision
occured. It's very fast to check,
just as you would in 2d.
First check in 2d if they collide, then
do that last check if too far above or
below.
------------------
Jim Adams
Co-Designer 'The Light Befallen'
tcm@pobox.com
http://www.lightbefallen.com
Now onto the question at hand:
I am working on an isometric engine and was wondering if anyone tried to implement a psuedo-3d collision detection. What I mean is that in isometric games, all objects are 2D. When collision is being calculated, it is usually calculated on a flat 2D plane. For example: If you run into another person, all you normally have to do to move around them is move up 1 pixel and then you will walk behind them. This is an easy way to do collision detection, but it's not realistic enough for me.
What I would like to implement is collision detection based on occupied space. Normal sprites are bounded by a rectangle... I want a 3D cube to bound my sprite but not have a true 3D object. This was a pseudo-3D collision detection can take place.
Has anyone every try this or is this idea way too stupid to even attempt?
Thanks for the feedback.
Dino M. Gambone
Good judgment is gained through experience. Experience, however, is gained through bad judgment.
Currently working on Rise of Praxis MUD: http://www.riseofpraxis.net/
------------------
Dino M. Gambone
http://www.xyphus.com/users/dino
Good judgement is gained through experience. Experience, however, is gained through bad judgement.
Dino M. Gambone
Good judgment is gained through experience. Experience, however, is gained through bad judgment.
Currently working on Rise of Praxis MUD: http://www.riseofpraxis.net/