gpt4 book ai didi

java - LibGDX画线

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

我正在尝试使用 libGDX 制作弹弓之类的东西。

我的代码

if (Gdx.input.isTouched()) {

ShapeRenderer sr = new ShapeRenderer();
sr.setColor(Color.BLACK);
sr.setProjectionMatrix(camera.combined);

sr.begin(ShapeType.Line);
sr.line(player.getLeft().x, player.getLeft().y,
Global.game_touch_position.x, Global.game_touch_position.y);
sr.line(player.getRight().x, player.getRight().y,
Global.game_touch_position.x, Global.game_touch_position.y);
sr.end();

}

这样做我会得到输出 enter image description here这看起来很糟糕,如果我在我的 android 手机上调试,logcat 会被消息垃圾邮件

02-17 18:55:27.371: D/dalvikvm(7440): GC_CONCURRENT freed 1884K, 40% free 8287K/13635K, paused 15ms+2ms, total 40ms

并且滞后,当我触摸屏幕时我有大约 30 fps,当我不触摸屏幕时为 60...

我还需要画粗一点的线,所以当线比较粗的时候,我就得把它画得粗一点,这样看起来更酷。

在 libgdx 中绘制简单线条的最佳方法是什么?如果我找不到任何答案,我可能会从一条线的一点到另一点画圆圈……这看起来不错,但看起来不像弹弓……

有什么帮助吗?

最佳答案

我只是在帮助程序或实用程序类中有类似的东西。我通常用它来调试和可视化正在发生的事情。

private static ShapeRenderer debugRenderer = new ShapeRenderer();

public static void DrawDebugLine(Vector2 start, Vector2 end, int lineWidth, Color color, Matrix4 projectionMatrix)
{
Gdx.gl.glLineWidth(lineWidth);
debugRenderer.setProjectionMatrix(projectionMatrix);
debugRenderer.begin(ShapeRenderer.ShapeType.Line);
debugRenderer.setColor(color);
debugRenderer.line(start, end);
debugRenderer.end();
Gdx.gl.glLineWidth(1);
}

public static void DrawDebugLine(Vector2 start, Vector2 end, Matrix4 projectionMatrix)
{
Gdx.gl.glLineWidth(2);
debugRenderer.setProjectionMatrix(projectionMatrix);
debugRenderer.begin(ShapeRenderer.ShapeType.Line);
debugRenderer.setColor(Color.WHITE);
debugRenderer.line(start, end);
debugRenderer.end();
Gdx.gl.glLineWidth(1);
}

现在我可以轻松地从任何我喜欢的地方在我想要的任何投影矩阵上画一条线。

HelperClass.DrawDebugLine(new Vector2(0,0), new Vector2(100,100), camera.combined);

您想在其他 SpriteBatch 开始和结束之外绘制。如果你想在每一帧制作很多行,你最好在一个单独的静态方法中开始和结束 ShapeRenderer,或者将其公开并根据你的需要自己做。

显然,您可以为更多形状或更多重载创建更多方法。

关于java - LibGDX画线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21835062/

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