所以基本上我试图弄清楚如何在两个矩形之间进行适当的碰撞。检测不是问题,但矩形开始剪裁。我想重置位置,但我该怎么做。我正在尝试使用 dx 和 dy 进行重置,但它不会重置到正确的坐标。
http://i.stack.imgur.com/IU6sK.png(抱歉我还不能使用图片)
System.out.println(this.y + this.h + " " + e.getY());
if(this.y + this.h >= e.getY())
{
if(this.dy > 0)
{
this.y -= delta * this.dy + 0.1;
this.dy = 0;
}
else
{
this.y += delta * this.dy;
this.dy = 0;
this.inAir = false;
}
}
这段代码只是一个例子,展示了我如何尝试它。(this = 白色矩形,e = 橙色)我使用了我的类 Entity,它扩展了 Rectangle。
在我打电话给这个之前,我正在检查十字路口。这是“白色”实体中的一个函数,并且在主循环的更新函数中检查了交集。
如果我使用它,矩形之间会有 1px 的距离。有任何想法吗?谢谢你的帮助 :)