在过去的几天里,我一直在修补用一台摄像机移动播放器并让摄像机跟随播放器的x和y . 当我搜索到这一切时,我找到的就是移动播放器并将相机的x和y设置为该值 . 但我遇到了问题,我的播放器不会停留在屏幕中间,这真的很烦人 . 如果有人能说我会那么棒 . 这是代码 .
在创造;
cam = new OrthographicCamera();
cam.setToOrtho(false, Main.WIDTH, Main.HEIGHT);
batch = new SpriteBatch();
batch.setProjectionMatrix(cam.combined);
在更新中;
cam.position.set(Player.getX() + Main.WIDTH / 2, Player.getY() + Main.HEIGHT / 2, 0);
cam.update();
在运动中;
if (Gdx.input.isKeyPressed(Keys.W) || Gdx.input.isKeyPressed(Keys.UP)) {
Player.setVelY(Player.SPEED);
} else if (Gdx.input.isKeyPressed(Keys.S)
|| Gdx.input.isKeyPressed(Keys.DOWN)) {
Player.setVelY(-Player.SPEED);
} else {
Player.setVelY(0);
}
if (Gdx.input.isKeyPressed(Keys.A) || Gdx.input.isKeyPressed(Keys.LEFT)) {
Player.setVelX(-Player.SPEED);
Player.dir = Player.Direction.LEFT;
} else if (Gdx.input.isKeyPressed(Keys.D)
|| Gdx.input.isKeyPressed(Keys.RIGHT)) {
Player.setVelX(Player.SPEED);
Player.dir = Player.Direction.RIGHT;
} else {
Player.setVelX(0);
Player.dir = null;
}
1 回答
我'd suggest you just set the camera position to the position of the Sprite of the player. I can'告诉你
Player.getX()
返回什么,但它应该返回表示玩家的Sprite的x坐标 . y坐标也是如此 .cam.position.set(Player.getX() + Main.WIDTH / 2, Player.getY() + Main.HEIGHT / 2, 0);
将会
cam.position.set(Player.getX() + Player.getWidth() / 2, Player.getY() + Player.getHeight() / 2, 0);