我使用Android 2D图形绘制了旋转的弧线

c.drawArc(new RectF(50, 50, 250, 250), 30, 270, true, paint);

弧线会 旋转 游戏运行时

我想知道如何检测其他游戏对象(矩形,圆圈)是否与之相撞 ??

这是我第一次写游戏:)

我看到了这样的东西 http://hakim.se/experiments/html5/core/01/

提前致谢

有帮助吗?

解决方案

弧碰撞比正常碰撞稍难,但是使用布尔代数,您可以轻松地检查给定点是否在您的弧内。

看看以下图片。

这里有3个对象。黑色球体,这可以使您的弧线形象化,如果与之发生碰撞,它可能在您的弧内。黑色球体顶部的红色球体可视化弧线的“内部”,如果在红色球体内部有东西,那绝对不是“内部”弧。现在,还有一个绿色三角形来可视化弧的“截止”,绿色三角形内的任何东西也绝对不在您的弧中。

测试如果黑色球内某物很容易。 (物体到球中心的距离<=球的半径)。红色球体也一样。绿色三角形有点棘手,您首先必须构建它。找到您的弧线的开始和末端弧度。并通过启动弧度旋转单位矢量。然后按末端旋转单位矢量。将两个向量延长2 *黑色球的半径。现在,使用弧的中心点和两个向量的位置,并将中心位置添加为三角形的3点。然后,您可以使用点三角形碰撞求解器之一: http://www.bing.com/search?q=point+triangle+collision&go=&form = qblh&scope = web

因此,请记住:与Arc =(与黑色球体发生碰撞)&&!(与红色球体发生碰撞)&&!(与绿色三角形相撞)。

ARC Collision

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top