1

如何检查对象是否在等距块的范围内?例如,我有一个播放器,我想检查它是否在这个等距块的范围内。我使用 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,而不是真正的等距边界。图片示例:(红色是程序检查边界的地方)

我现在拥有的:

矩形检查

所需检查:

等距检查

最终我想对块中的每个图块做同样的事情。

额外信息:

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

4

0 回答 0