我有一些激光器使用矩形的打击盒,在游戏中我检查敌人与矩形打击盒的交点。效果很好,但是现在我正在尝试实现一些30度角的激光器,我不知道如何有效地做到这一点。我不想对每个像素进行检测,因为我计划在屏幕上显示一些像素,这会很大。
任何帮助,将不胜感激。谢谢。
哦,我正在用Java for android来做这个(虽然不那么重要)
最佳答案
使用线性截距进行计算
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并测试它是否在激光切刀和矩形的范围内