2013-02-11 159 views
1

我有一些激光器使用矩形框作为打标框,我检查与我的敌人在游戏中的矩形打标框的交集。这工作正常,但现在我试图实现一些角度为30度的激光,我不知道如何有效地做到这一点。我不想每像素检测一次,因为我打算在屏幕上显示相当多的内容,这将会非常重要。非方形物体的碰撞检测

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

哦,我在Java这样的Android(不要认为这是虽然重要)

+0

您能否提供一些有关所涉几何的更多细节?图表会很有帮助。 – 2013-02-11 05:46:34

回答

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和矩形的范围内