gpt4 book ai didi

android 2d弧形碰撞检测

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:32:44 26 4
gpt4 key购买 nike

我有一个使用 android 2d 图形绘制的旋转弧

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

游戏运行时圆弧会旋转,

我想知道如何检测是否有任何其他游戏对象(矩形、圆圈)与它发生碰撞 ??

我第一次写游戏:)

我在 http://hakim.se/experiments/html5/core/01/ 中看到了类似的东西

提前致谢

最佳答案

圆弧碰撞比普通碰撞稍微难一些,但使用 bool 代数,您可以轻松检查给定点是否在圆弧内。

看看下面的图片。

这里有 3 个对象。黑色球体,它可视化你的弧线,如果有什么东西与它碰撞,它可能在你的弧线内。黑色球体上方的红色球体,这可视化了圆弧的“内部”,如果红色球体内部有东西,则它肯定不在圆弧“内部”。现在还有一个绿色三角形可视化你的弧线的“截止”,绿色三角形内的任何东西也肯定不在你的弧线内。

测试黑球内是否有东西很容易。 (物体到球体中心的距离 <= 球体半径)。红色球体也一样。绿色三角形有点棘手,您首先必须构建它。找到弧的起点和终点弧度。并按起始弧度旋转单位向量。然后将单位向量旋转结束弧度。将这两个向量延长 2 * 黑色球体的半径。现在使用圆弧的中心点和添加中心位置的两个向量的位置作为三角形的 3 个点。然后您可以使用点-三角形碰撞求解器之一:http://www.bing.com/search?q=point+triangle+collision&go=&form=QBLH&scope=web

所以请记住:与圆弧的碰撞 = (与黑色球体的碰撞) && !(与红色球体的碰撞) && !(与绿色三角形的碰撞)。

ARC Collision

关于android 2d弧形碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6307114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com