检查对象是否在等距图块/块的边界内

时间:2012-09-21 11:40:12

标签: java tile bounding-box isometric

如何检查对象是否在等距块的范围内?例如,我有一个玩家,我想检查它是否在这个等距块的范围内。 我使用OpenGL Quads绘制等距块的图块。

我的第一次尝试是检查方形图案:

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;

这里发生的是它检查块周围的SQUARE,而不是真正的等距边界。图像示例:(红色是程序检查边界的地方)

我现在拥有的:

Rectangle check

期望的支票:

Isometric check

最终,我想对块中的每个图块执行相同的操作。

额外信息:

到目前为止我在游戏中所拥有的只是你可以一块一块地移动,但现在我希望它们可以自由移动但是我仍然需要它们有一个瓷砖位置,所以无论它们在瓷砖的哪个位置它们的瓷砖位置都会是某种瓷砖。然后,当他们在不同的瓷砖的边界框内时,他们的瓷砖位置成为新的瓷砖。大块也是如此。玩家确实有一个区域,但在这种情况下该区域无关紧要。只要X和Y在边界框内,它就应该返回true。他们不必完全在瓷砖上。

0 个答案:

没有答案