libgdx - 如何使用libgdx画一条线?

标签 libgdx

我正在尝试使用 libgdx 绘制一些用于调试的线条,但我失败了。这是我的代码

public class MainMenu extends Screen implements InputProcessor {

private OrthographicCamera camera;
SpriteBatch myBatch;
ShapeRenderer shapeDebugger;

public MainMenu(Game game) {
    super(game);
    camera= new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    camera.setToOrtho(true, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    camera.update();}

@Override
public void render(float delta) {
    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    myBatch.begin();
    stage.draw();
    Gdx.gl10.glLineWidth(10);
    shapeDebugger.setProjectionMatrix(camera.combined);
    shapeDebugger.begin(ShapeType.Line);
    shapeDebugger.setColor(1, 1, 1, 1);
    shapeDebugger.line(2, 2, 5, 5);
    myBatch.end();
    }
}

我从行收到错误

shapeDebugger.setProjectionMatrix(camera.combined);

@Pranav008

非常感谢您。我没想到我需要启动它。但我有一个真正的问题。我像这样绘制到游戏屏幕中心的线。
    Gdx.gl10.glLineWidth(2);
    shapeDebugger.setProjectionMatrix(camera.combined);
    shapeDebugger.begin(ShapeType.Line);
    shapeDebugger.setColor(1, 1, 1, 1);
    shapeDebugger.line(Gdx.graphics.getWidth()/2, 0,Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight());
    shapeDebugger.end();

当我尝试调整屏幕大小时,它不会更新到中心,而是远离右侧。

最佳答案

你一定有 nullpointerException因为你还没有创建 ShapeRenderer 的任何对象。
将此行插入到您的构造函数中。

shapeDebugger=new ShapeRenderer();

关于libgdx - 如何使用libgdx画一条线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17848407/

相关文章:

android - 在两个 Actor 之间绘制视线

java - LIBGDX 主菜单上有超过 1 个按钮

java - libGDX scene2d TextFieldListener 在 Android 上未接收 DELETE 键

java - libgdx 中的多点触控

java - 如何与 Sprite 一起旋转 vector ?

java - 来自TextureAtlas的LibGDX缩放和渲染 Sprite

java - 使 Sprite 沿 vector 的相反方向移动

java - 垃圾收集器在呈现简单屏幕期间调用 (libgdx)

android - 如何通过单击 libgdx 上的按钮打开另一个类? (android开发eclipse)

java - 您知道是否可以在 Android 中(在 Android 手机中)编译 libgdx 而无需在 native JAVA 中编译它吗?