我目前正在使用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在左上角的坐标系。
提前谢谢!
答案 0 :(得分:0)
直到致电batch.setProjectionMatrix(camera.combined);
,您才使用相机。