Android Studio libgdx setToOrtho(ydown = true)不起作用

时间:2019-03-21 22:12:27

标签: android libgdx

我目前正在使用libgdx库开发Android游戏。目前,我遇到了一个问题,即xy坐标系翻转。

我进行了一些研究,发现如果使用OrthographicCamera,则可以更改y坐标,因此不再翻转。

代码:

public class Game extends ApplicationAdapter {
Miner miner;
SpriteBatch batch;
TouchManager touchManager;
OrthographicCamera camera;

public void create(){
    camera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    camera.setToOrtho(true, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    miner = new Miner(new Texture(Gdx.files.internal("miner_lv1.png")), 0, 0, 200, 200);
    batch = new SpriteBatch();
    touchManager = new TouchManager();
}

public void render(){
    //update
    camera.update();
    touchManager.update(camera);
    miner.update();

    //drawing
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(Gdx.gl20.GL_COLOR_BUFFER_BIT);

    batch.begin();
    miner.render(batch);
    batch.end();
}

public void dispose()
{
    batch.dispose();
    miner.dispose();
}

}

矿工:

public class Miner extends Entity {
public Miner(Texture texture, int x, int y, int width, int height) {
    super(texture, x, y, width, height);
}

@Override
public void update() {
    sprite.setX(x);
    sprite.setY(y);
}

@Override
public void render(SpriteBatch batch) {
    sprite.draw(batch);
}

@Override
public void dispose() {
    texture.dispose();
}

}

输出如下: Ouptut of code

我的问题是如何更改x = 0和y = 0在左上角的坐标系。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

直到致电batch.setProjectionMatrix(camera.combined);,您才使用相机。