我正在尝试使用 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/