非方形物体的碰撞检测

时间:2013-02-11 05:42:49

标签: java android collision-detection

我有一些激光器使用矩形作为命中框,我在游戏中检查与敌人的矩形命中框的交叉点。这工作正常,但现在我正在尝试实现一些角度为30度的激光器,我不知道如何有效地做到这一点。我不想做每像素检测,因为我计划在屏幕上有相当多的内容,而且会有很多。

任何帮助将不胜感激。感谢。

哦,我在java for android中做这个(不要认为它那么重要)

1 个答案:

答案 0 :(得分:1)

使用线性截距计算

   y = mx + c
   y2 = gx + d
   mx + c = gx + d
   mx - gx = d - c
   x(m - g) = d - c
   x => (d-c)/(m-g)

然后测试返回的值是否在x的域中。找到x后,计算y并在lazer和矩形的范围内测试它