我有一个使用android 2d图形绘制的旋转弧
c.drawArc(new RectF(50, 50, 250, 250), 30, 270, true, paint);
在游戏运行时,弧将旋转,
我想知道如何检测其他任何游戏对象(rects,circle)是否与它发生冲突 ??
这是我第一次写游戏:)
我在http://hakim.se/experiments/html5/core/01/
中看到了类似的内容提前致谢
答案 0 :(得分:7)
圆弧碰撞比正常碰撞稍微硬一些,但使用布尔代数,您可以轻松检查给定点是否在弧内。
看看下面的图片。
这里有3个物件。黑色球体,这可以看到你的弧线,如果有东西碰撞它,它可能在你的弧线内。黑色球体顶部的红色球体,可以看到弧线的“内部”,如果红色球体内部有东西,它绝对不会在弧线内部。现在还有绿色三角形可视化你的弧线的“截止”,绿色三角形内的任何东西也绝对不在你的弧线中。
测试黑色球体内是否有东西很容易。 (物体到球体中心的距离< =球体半径)。红色球体也是如此。绿色三角形有点棘手,你首先必须构建它。找到弧的起点和终点弧度。并通过起始弧度旋转单位矢量。然后用结束弧度旋转单位矢量。将这两个向量延长2 *黑球的半径。现在使用弧的中心点和两个向量的位置,将中心位置添加为三角形的3个点。然后,您可以使用其中一个点三角形碰撞求解器:http://www.bing.com/search?q=point+triangle+collision&go=&form=QBLH&scope=web
请记住:与arc的碰撞=(与黑球的碰撞)&& !(与红色球体碰撞)&& !(与绿色三角形碰撞)。