如何检查对象是否在等距块的范围内?例如,我有一个播放器,我想检查它是否在这个等距块的范围内。我使用 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。他们不必完全在瓷砖上。