【问题标题】:Android Studio libgdx setToOrtho(ydown = true) does not workAndroid Studio libgdx setToOrtho(ydown = true) 不起作用
【发布时间】:2019-03-21 22:12:26
【问题描述】:

我目前正在使用库 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在左上角的坐标系。

提前谢谢你!

【问题讨论】:

标签: android libgdx


【解决方案1】:

在您致电batch.setProjectionMatrix(camera.combined); 之前,您不会使用相机。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-17
    • 2013-12-10
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多