我正在使用LibGDX和Box2D编写游戏,我希望我的相机能够关注我的播放器。但是当我放大(因为Box2Ds公制系统,使用camera.zoom = x)时,相机会在玩家移动时移动(相机跟随玩家):
移位视图
普通视图
只有在玩家移动时才会发生这种情况,因此坐标不会出现问题。我的问题是如何在玩家移动时消除这种转变。
以下是我的一些代码:
渲染循环(摘录):
@Override
public void render(float delta) {
//set the camera position to player's position
cam.position.set(player_body.getWorldCenter().x, player_body.getWorldCenter().y, 0);
cam.update();
world.step(Gdx.graphics.getDeltaTime(), 6, 2);
world.clearForces();
handleInput();
Gdx.gl.glClearColor(.05f, .05f, .05f, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.setProjectionMatrix(cam.combined);
debugRenderer.render(world, cam.combined);
}
让玩家移动:
if (Gdx.input.isKeyPressed(Keys.W)) {
player_body.setLinearVelocity(transX, transY);
player.setMoving(true);
}