java - Libgdx 正交相机初始位置

标签 java camera libgdx

我希望相机的位置正确,但我得到的结果如下:

enter image description here

似乎当我调整窗口大小时, map 没有正确呈现。为什么会这样?

代码:

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

    camera.update();
    mapRenderer.setView(camera);
    mapRenderer.render(background);
    mapRenderer.render(foreground);
    shapeRenderer.setProjectionMatrix(camera.combined);

    //draw rectangles around walls
    for(MapObject object : tiledMap.getLayers().get("walls").getObjects()){
        if(object instanceof RectangleMapObject) {
            RectangleMapObject rectObject = (RectangleMapObject) object;
            Rectangle rect = rectObject.getRectangle();
            shapeRenderer.begin(ShapeType.Line);
            shapeRenderer.rect(rect.x, rect.y, rect.width, rect.height);
            shapeRenderer.end();
        }
    }
    //done drawing rectangles
}

@Override
public void resize(int width, int height) {
    camera.viewportWidth = width;
    camera.viewportHeight = height;
}

@Override
public void show(){
    //call the tile map here
    //I believe this is called first before render() is called
    tiledMap = new TmxMapLoader().load("data/mapComplete.tmx");
    mapRenderer = new OrthogonalTiledMapRenderer(tiledMap, 1f);

    //initiate shapeRenderer. Can remove later
    shapeRenderer = new ShapeRenderer();
    shapeRenderer.setColor(Color.RED);

    camera = new OrthographicCamera();
    camera.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
}

最佳答案

这应该使 camera 位于游戏的 viewport 中心。

@Override
public void resize(int width, int height) {
    camera.viewportWidth = width;
    camera.viewportHeight = height;
    camera.position.set(width/2f, height/2f, 0); //by default camera position on (0,0,0)
}

关于java - Libgdx 正交相机初始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21913894/

相关文章:

java - 当visible=false时阶段仍然接收事件?

java - Servlet .jar 依赖空指针

java - Cypher 不重复相同的结果

java - 如何更改哪个组件正在监听事件

javascript - camera.lookAt() 的逆

c++ - directx c++ 相机运动

java - 异步任务,关闭alertdialog后进度对话框不会消失

android - onActivityResult 未在 Android 中触发

java - LibGDX:根据单词的长度在屏幕上创建文本按钮的数量?

android - Appodeal android示例错误