在LIBGDX中,游戏只占据屏幕的右上角

在LIBGDX中,游戏只占据屏幕的右上角,libgdx,Libgdx,我正在LIBGDX上工作。我的游戏只占据屏幕的右上角,而不是占据整个宽度和高度。 在我的屏幕更新方法中,我有以下代码 public void update(float dt) { ...... gamecam.position.x = this.gamehero.heroBody.getPosition().x; -- 1 gamecam.position.y = this.gamehero.heroBody.getPositi

我正在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轴上跟随玩家。当我加入第二行代码时,我已经附上了游戏的屏幕截图

当我删除第二行代码时,它会占据整个屏幕


我不知道如何解决它。任何建议都会更好。感谢您使用以下功能创建您的相机:

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
}

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
}

似乎你已经回答了你的问题->只需删除第二行:-|我说如果删除第二行,相机不会跟随y轴上的播放器。但我需要相机跟随@user3351949,这要感谢它的工作,但视口显示在略高于地面的位置。即,未显示部分接地。有什么想法吗@Menno GouwYeah,现在您正在将凸轮的左/下部分定位在角色的左下部分。因此,如果您想让相机在播放器下方显示一个额外的平铺,您可以从Y位置减去平铺高度
gamecam.position.y=this.gamehero.heroBody.getPosition().y+gamecam.getViewportHeight/2-tileHeight同样,您可以对相机的X位置执行此操作。你基本上是用播放器移动相机,你加上或减去的任何东西都是相机的偏移量,就像我们以前用一半的视口宽度/高度做的那样。用瓷砖高度减去都不起作用。我刚刚使用了tilePixelWidth=prop.get(“tilewidth”,Integer.class);然后像你说的那样减去x位置的tilePixelWidth,但是当我使用这个@Menno Gouwi时,我也看不到世界,如果你用你的瓷砖的高度偏移相机,那么这将修复它。这与增加宽度vp宽度/高度完全相同。我不知道你们是怎么画瓷砖的,所以不可能知道用什么数字。尝试使用偏移量数字。如果
prop.get(“tilewidth”,Integer.class)返回大约1000,但当您使用10绘制时,它显然不起作用。别想了,这很简单:
你把相机的中间位置设置在角色上
,然后
将相机偏移半个屏幕大小
,现在只需
将它偏移平铺大小