Java 查找等轴测图元的示意图

Java 查找等轴测图元的示意图,java,math,collision-detection,game-physics,isometric,Java,Math,Collision Detection,Game Physics,Isometric,我正在用Java制作一个2D等距引擎,因为我想我喜欢痛苦。不管怎么说,我正在进行碰撞检测,我遇到了一点问题 游戏中的角色不局限于从一个瓷砖移动到另一个瓷砖-他们可以自由移动。我的问题是,我不知道如何阻止一个玩家碰撞,比如说,一个板条箱,而不让他们接触瓷砖 例如,假设板条箱在瓷砖的.5上,然后板条箱的其余部分离开瓷砖,我希望玩家能够移动到瓷砖的免费.5,而不是整个瓷砖被阻塞 我遇到的问题是,我不确定如何近似对象足迹的大小。使用图像的尺寸并不能很好地工作,因为对象在游戏空间中的“高度”转化为图像占用

我正在用Java制作一个2D等距引擎,因为我想我喜欢痛苦。不管怎么说,我正在进行碰撞检测,我遇到了一点问题

游戏中的角色不局限于从一个瓷砖移动到另一个瓷砖-他们可以自由移动。我的问题是,我不知道如何阻止一个玩家碰撞,比如说,一个板条箱,而不让他们接触瓷砖

例如,假设板条箱在瓷砖的.5上,然后板条箱的其余部分离开瓷砖,我希望玩家能够移动到瓷砖的免费.5,而不是整个瓷砖被阻塞

我遇到的问题是,我不确定如何近似对象足迹的大小。使用图像的尺寸并不能很好地工作,因为对象在游戏空间中的“高度”转化为图像占用的额外空间

我应该如何估计对象的大小?记住,我不需要像素完美检测。菱形就行了


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

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


如果精灵的宽度为
W
像素,高度为
H
像素,则菱形的方形底座的侧面为
W/sqrt(3)
,菱形的高度为
H-(W/sqrt(3))
。有助于理解这些公式的工作原理。

如何存储对象的大小和位置?为什么游戏空间中对象的“高度”会转换为额外的占地面积?因为它的影子?因为球员的视角?听起来你需要3d对象在地板上的2d投影来获得“拒绝”的地板面积。这是因为它不是真正的3d对象,而是3d图像在平面2d png上的投影,据游戏所知,屋顶占用了额外的地板空间。我试图找到3d对象的2d投影,以仅拒绝该楼层空间。如何做到这一点是我的问题。