如何使相机跟随播放器?

时间:2014-11-29 19:52:15

标签: libgdx

我正在用libgdx制作游戏,其中包括玩家可以垂直移动超出设定的屏幕尺寸。

至于我的问题,如果我将屏幕尺寸设置为一定的宽度和高度,那么让相机跟随播放器的实际游戏世界变得更大需要什么呢?

这当然是我在主游戏类中的目标屏幕尺寸:

public static final int WIDTH = 480, HEIGHT = 800;

以下我目前有:

public static final int GameHeight = 3200;

GameHeight是我测试玩家是否超出界限的值。

这是问题所在。使用此代码,播放器以屏幕为中心,并水平移动,从屏幕边界反弹(如没有相机,但忽略y位置的变化)

public GameScreen(){
    cam = new OrthographicCamera();
    cam.setToOrtho(false, 480, 800);
}

@Override
public void render(float delta) {
    // TODO Auto-generated method stub
    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    cam.position.y = player.getPosition().y;

    cam.update();

    batch.setProjectionMatrix(cam.combined);

    player.update();
    player.draw(batch);
}

如果我删除:

cam.position.y = player.getPosition().y;

摄像机位于虚拟世界的底部,球从顶部开始(y = 3200)并向下移动。当它达到y = 800时,它就会显示出来。

我发现很多例子都表明,将相机位置设置到玩家的位置应该会迫使相机跟随玩家,无论是向上还是向下移动,但要么冻结y移动或设置虚拟世界底部的摄像头。

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

我会尝试cam.position.set(player.getPosition().x, player.getPosition().y)。这将使相机跟随您的player并且不会导致任何“冻结”。