2016-02-14 36 views
0

我正在使用LIBGDX。我的遊戲只佔用屏幕的右上角,而不佔用整個寬度和高度。 在屏幕的我的更新方法,我有這樣的代碼,遊戲只佔用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上播放軸。我重視遊戲的畫面拍攝時,包括我的代碼的第二行,output

而且,當我刪除代碼的第二行,它佔據了整個屏幕

output我不知道如何解決它。任何建議會更好。每個位置編輯後

gamecam = new OrthographicCamera(SCREEN_WIDTH, SCREEN_HEIGHT); 
gamecam.position.set(SCREEN_WIDTH/2, SCREEN_HEIGHT/2, 0); 

更新相機gamecam.update():謝謝

+0

看起來像你已經回答了你的問題 - >刪除第二行: - | – ColdSteel

+0

我說如果我刪除第二行,相機不會沿Y軸跟隨播放器。但我需要相機跟隨@ user3351949 – Anusha

+0

我錯過了那個對不起 – ColdSteel

回答

0

與此創建您的相機。

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 
} 
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 
} 
+0

感謝它的工作,但視口顯示略高於地面。即。沒有顯示地面的一部分。任何想法 ? @Menno Gouw – Anusha

+0

是的,現在你正在將角色的左下角定位在凸輪的左側/底部。因此,如果您想讓相機在播放器下方顯示額外的瓷磚,您可以從Y位置減去瓷磚高度。 'gamecam.position.y = this.gamehero.heroBody.getPosition()。y + gamecam.getViewportHeight/2 - tileHeight;'同樣,您可以爲相機的X位置做這個。您基本上是將相機與播放器一起移動,您添加或減去的任何東西都是相機的偏移量,就像我們以前用視口寬度/高度的一半所做的那樣。 – Madmenyo

+0

用tileHeight減法不起作用。我只是用tilePixelWidth = prop.get(「tilewidth」,Integer.class);然後減去tilePixelWidth爲x位置,如你所說,但我無法看到世界或者當我使用這個@Menno Gouw – Anusha

相關問題