我正在用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移动或设置虚拟世界底部的摄像头。
感谢任何帮助,谢谢!
答案 0 :(得分:0)
我会尝试cam.position.set(player.getPosition().x, player.getPosition().y)
。这将使相机跟随您的player
并且不会导致任何“冻结”。