我正在设计一个射手游戏。当箭头击中目标时,它会停止移动。我想要完成的是定义一个公式来预测/获取目标和箭头在视图上相遇的位置。
当箭头的速度随初始速度变化而箭头也有角度时,会出现问题。另外,屏幕上的图像由x - bitmapt.getWidth/2
放置(高度相同,h / 2 ..)
如果箭头移动太快,我需要计算一个错误,所以箭头不会错过目标,即使它们应该与我们的x和y相同,箭头移动为X + speed
像素。所以我来到这样的地方!
if(arrow[i].getX() + v0x[i] / 2 >= target.getTarget().getX() && arrow[i].getX() <= target.getTarget().getX() + v0x[i] / 2)
我使用x / 2的速度来指定误差范围。
arrowX + velocity/2 >= collision point >= targetX + velocity/2
然而,它不起作用。
答案 0 :(得分:1)
这是一个纯粹的数学问题,在碰撞检测方面有很多文献。我建议你使用一个库。对于2D我推荐JBox2D。它是一个物理引擎(例如在“愤怒的小鸟”中使用)。您可以获得碰撞检测以及更多信息:)