找到等距实体的足迹

时间:2013-01-17 03:50:44

标签: java math collision-detection game-physics isometric

我正在努力用Java制作2D等距引擎,因为我喜欢受苦。无论如何,我正在进行碰撞检测,而且我遇到了一些问题。

游戏中的角色不限于从一块瓷砖到另一块瓷砖的移动 - 它们可以自由移动。我的问题是,我不确定如何阻止玩家与一个箱子相撞,而不会拒绝他们访问该牌。

例如,假设箱子放在.5的瓷砖上,然后其余的箱子离开了瓷砖,我希望玩家能够继续前进到免费的.5瓷砖而不是整个瓷砖被阻挡。

我遇到的问题是我不确定如何估算物体足迹的大小。使用图像的尺寸不能很好地工作,因为对象的高度"在游戏空间中转换为图像占用的额外空间。

我应该如何评估物体的大小?记住,我不需要像素完美检测。菱形可以正常工作。

我很乐意提供您可能需要的任何代码,但这似乎是一个数学问题。

1 个答案:

答案 0 :(得分:0)

从精灵的边界矩形中,您可以推断出适合内部的菱形的高度,但是您无法精确确定地板上的两个尺寸,因为每个尺寸对精灵的宽度和高度的贡献相等。但是,如果你假设菱形方块的底部,那么你也可以确定它的边长。

如果精灵的宽度为W像素且H像素高,则菱形的正方形底边为W / sqrt(3),菱形的高度为{{1} }。 This image of some shapes in isometric projection可以帮助您了解这些公式的工作原理。