我正在研究LIBGDX。我的游戏只占据屏幕的右上角,而不是占据整个宽度和高度。 在我的屏幕更新方法中,我有这段代码,
public void update(float dt) {
......
gamecam.position.x = this.gamehero.heroBody.getPosition().x; -- 1
gamecam.position.y = this.gamehero.heroBody.getPosition().y; -- 2
......
}
但是,当我删除代码的第二行时,游戏占据了整个屏幕,但相机在y轴上没有跟随玩家。当我包含代码的第二行
时,我附上了游戏的屏幕截图而且,当我删除第二行代码时,它会占用整个屏幕
答案 0 :(得分:0)
使用以下方法创建相机:
gamecam = new OrthographicCamera(SCREEN_WIDTH, SCREEN_HEIGHT);
gamecam.position.set(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, 0);
在每个位置编辑后更新相机gamecam.update()
。
public void update(float dt) {
gamecam.position.x = this.gamehero.heroBody.getPosition().x; // -- 1
gamecam.position.y = this.gamehero.heroBody.getPosition().y; // -- 2
gamecam.update(); // -- 3
}
答案 1 :(得分:0)
Kolesnikovich以他的代码顶部走在正确的轨道上。但不幸的是,最终将相机与你完全一样。
您实际在做的是设置凸轮的居中位置。所以你需要做的就是将摄像机的位置坐标增加视口宽度和高度的一半。
public void update(float dt) {
gamecam.position.x = this.gamehero.heroBody.getPosition().x +
gamecam.getViewportWidth / 2;
gamecam.position.y = this.gamehero.heroBody.getPosition().y +
gamecam.getViewportHeight / 2;
gamecam.update(); // -- 3
}