Checking if an object is inside bounds of an isometric chunk

Posted by gopgop on Game Development See other posts from Game Development or by gopgop
Published on 2012-09-21T10:41:17Z Indexed on 2012/09/21 15:54 UTC
Read the original article Hit count: 298

How would I check if an object is inside the bounds of an isometric chunk? for example I have a player and I want to check if its inside the bounds of this isometric chunk. I draw the isometric chunk's tiles using OpenGL Quads.

My first try was checking in a square pattern kind of thing:

e = object;
this = isometric chunk;

    if (e.getLocation().getX() < this.getLocation().getX()+World.CHUNK_WIDTH*World.TILE_WIDTH && e.getLocation().getX() > this.getLocation().getX()) {
        if (e.getLocation().getY() > this.getLocation().getY() &&   e.getLocation().getY() < this.getLocation().getY()+World.CHUNK_HEIGHT*World.TILE_HEIGHT) {
            return true;
        }
    }
    return false;

What happens here is that it checks in a SQUARE around the chunk so not the real isometric bounds. Image example: (THE RED IS WHERE THE PROGRAM CHECKS THE BOUNDS)

What I have now:

enter image description here

Desired check:

enter image description here

Ultimately I want to do the same for each tile in the chunk.

EXTRA INFO:

Till now what I had in my game is you could only move tile by tile but now I want them to move freely but I still need them to have a tile location so no matter where they are on the tile their tile location will be that certain tile. then when they are inside a different tile's bounding box then their tile location becomes the new tile. Same thing goes with chunks. the player does have an area but the area does not matter in this case. and as long as the X and Y are inside the bounding box then it should return true. they don't have to be completely on the tile.

© Game Development or respective owner

Related posts about opengl

Related posts about java