【发布时间】:2016-08-08 08:55:24
【问题描述】:
我正在制作一个简单的游戏,其中我有一个球和一个围绕中心旋转的弧。当用户触摸屏幕时,球沿指针方向移动并击中弧线。但是我找不到任何方法来检测该碰撞 附上一张图片以便更好地理解
游戏画面
调试快照..
我的球周围有一个圆圈... 我正在做的是
检测球心与圆弧旋转的圆的交点。 但是我无法检测球与圆相交时是否存在弧线?? 请帮忙...:'(
弧线制作代码:
public void arc (float x, float y, float radius, float start, float degrees,int segments) {
// int segments = (int)(6 * (float)Math.cbrt(radius) * (degrees / 360.0f));
if (segments <= 0) throw new IllegalArgumentException("segments must be > 0.");
float colorBits = color.toFloatBits();
float theta = (2 * MathUtils.PI * (degrees / 360.0f)) / segments;
float cos = MathUtils.cos(theta);
float sin = MathUtils.sin(theta);
float cx = radius * MathUtils.cos(start * MathUtils.degreesToRadians);
float cy = radius * MathUtils.sin(start * MathUtils.degreesToRadians);
for (int i = 0; i < segments; i++) {
renderer.color(colorBits);
Gdx.gl20.glLineWidth(10);
Gdx.gl.glEnable(GL20.GL_BLEND);
renderer.vertex(x + cx, y + cy, 0);
float temp = cx;
cx = cos * cx - sin * cy;
cy = sin * temp + cos * cy;
renderer.color(colorBits);
renderer.vertex(x + cx, y + cy, 0);
}
}
【问题讨论】:
-
你的弧是如何定义的?您可以比较相交角度是否在弧线范围内。
标签: math libgdx game-physics