3

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

游戏中的角色并不仅限于在瓷砖之间移动 - 他们可以自由移动。我的问题是我不确定如何阻止玩家与板条箱相撞,同时又不拒绝他们访问瓷砖。

例如,假设板条箱在 0.5 块瓷砖上,然后箱子的其余部分不在瓷砖上,我希望玩家能够继续移动到 0.5 块瓷砖而不是整个瓷砖被阻塞。

我遇到的问题是我不确定如何估计对象足迹的大小。使用图像的尺寸效果不是很好,因为对象在游戏空间中的“高度”会转化为图像占用的额外空间。

我应该如何估计物体的大小?请注意,我不需要像素完美的检测。菱形会很好用。

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

4

1 回答 1

0

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

如果精灵是W像素宽和H像素高,菱形的正方形底边的边为W / sqrt(3),菱形的高为H - (W / sqrt(3))等轴测投影中某些形状的图像有助于理解这些公式为何起作用。

于 2013-02-08T19:49:11.330 回答