2017-03-02 81 views
0

我正在Scala製作2D側滾動遊戲& libGDX。我的問題是我想要有一個固定的房間大小,比如4000px * 720px。libGDX如何設置遊戲房間的大小?

我希望窗口大小爲1280px * 720px,我需要一個正交相機,可以移動並顯示「房間」/「地圖」的正確部分。 問題是如何將房間大小設置爲特定大小,然後使用正交相機顯示其中的一部分?

目前我正在嘗試使用此教程:當我啓動這樣的程序https://github.com/libgdx/libgdx/wiki/Orthographic-camera

我可以設置窗口大小:

object DesktopLauncher { 
    def main(args: Array[String]) { 
     var config: LwjglApplicationConfiguration = new LwjglApplicationConfiguration 
     config.foregroundFPS = 60 
     config.width = 1280 
     config.height = 720 
    new LwjglApplication(new Controller, config) 
    } 
} 

而且我可以設置相機的大小是這樣的:

val h: Float = Gdx.graphics.getHeight() 
val w: Float = Gdx.graphics.getWidth() 

cam = new OrthographicCamera(100, 100 * (h/w)) 
cam.position.set(cam.viewportWidth/2f, cam.viewportHeight/2f, 0) 

但是我怎樣才能指定相機和房間大小是我想要的像素大小?

回答

0

如果我正確理解您的問題,您希望當您到達房間邊緣時停止顯示黑條(停止在房間邊緣滾動)。我假設你正在使用Viewport。 (你應該是) 下面是我該怎麼做:

你需要使用Viewport#unproject()投影屏幕座標世界座標。你可以將窗口寬度投影到世界座標上,我們稱之爲camWorldX。在移動相機之前,您需要檢查camWorldX + 1 < roomWidth。如果是true移動相機,否則不要。對於負向,請取消項目0並檢查camWorldX - 1 < 0。您可以將相同的邏輯應用於軸。

要了解有關LibGDX座標系統的更多信息,請致電click here。閱讀更多關於Viewport#unproject()click here