我正在设计一个射手游戏。当箭头击中目标时,它停止移动。我要完成的工作是定义一个公式,以预测/获取目标和箭头在视图上相交的位置。

当箭头的速度随初始速度变化而箭头也具有角度时,就会出现问题。另外,屏幕上的图像按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


但是,它不起作用。

最佳答案

这是一个纯粹的数学问题,有关碰撞检测的文献很多。我建议您使用图书馆。对于2D,我建议JBox2D。它是一个物理引擎(例如在《愤怒的小鸟》中使用)。您将获得碰撞检测等更多信息:)

关于android - 游戏,视线碰撞,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13435492/

10-08 21:26