2014-10-31 36 views
1

我正在製作一款具有靜態遊戲(即固定背景)的遊戲。 我想瞄準寬高比範圍爲1.33(800x600)至1.77(854x480)的設備。 對於我的playArea我想要一個固定的長寬比。 對於我的HUD,我希望相對於Scrren Size的固定位置 ,並且我正在使用階段來實現HUD,遊戲區域。如何決定WorldSize,用於GamePlay和HUD的視口

  • 這裏世界大小是指虛擬的尺寸(如通過Springrbua提及)

首先問題 - 是可能靶向範圍廣泛的具有恆定worldsize或屏幕的設置一些ViewPort-(拉伸,填充等)?

第二個問題 - 像素中的世界大小應該是多少,以便我可以創建相應的圖形?

第三個問題 - HUD,Gameplay應該是什麼視口?

我的經驗... 我開始一個遊戲WorldSize(855 X 600)填充視見爲遊戲和StretchViewPort爲HUD.For遊戲到目前爲止是好的,但我面臨着許多問題與HUD.hud元素的位置永遠不會保持一樣,無論我做什麼(固定位置,不考慮screenSize)。

最後一個 - 正在創建分辨率背景855x600是正確的事情嗎?

Plz建議更好的選擇,方法或我做錯了什麼。

在此先感謝。

因爲我的英語不好。

+0

可能有點超出了StackOverflow的範圍。如果您繼續使用libgdx,那麼我建議停止訪問http://gamedev.stackexchange.com/,這可能會引起更多關注。 – kasoban 2014-10-31 15:19:38

+0

我可以將此帖轉移到gamedev.stackexchange.com。 – 2014-10-31 15:24:21

回答

3

首先:世界大小是不一樣的視口大小(或者虛擬大小在下面的文本):
Worldsize:水平
虛擬尺寸大小:levelpart的尺寸/ worldpart即可見屏幕

通常你只能看到一部分水平和一個Camera移動周圍顯示不同的部分。
如果整個級別一次顯示在屏幕上,則世界大小和虛擬大小相同。
爲了保持一切儘可能簡單,他們應該使用相同的單位(例如米)。

有了libgdx,它不僅可以擁有固定的虛擬大小,而且它也非常容易。

正如你已經注意到,有Viewport類,其中一些支持虛擬大小。
Viewport您應該用於您的遊戲區域的是FitViewport,它支持虛擬尺寸並通過顯示黑色邊框來保持縱橫比例(例如,16/10屏幕上的16:9縱橫比會導致黑色邊框頂部和屏幕底部)。
對於HUD,你可以使用另一個Viewport,我想StretchViewport是好的。它還支持虛擬尺寸,但不是保持縱橫比,而是延伸東西(例如16/10屏幕上16:9虛擬寬高比的元素將伸展和縮小)以填充屏幕。

要選擇的虛擬大小取決於遊戲。試想一下:

  1. 屏幕上有什麼實體?例如人類
  2. 他們在現實生活中有多大? 人類高約1.75米。
  3. 我希望他們在屏幕上有多大? A 人類應該是屏幕的1/10左右。

好的,現在你有1.75m應該是1/10 screenheight。因此Screensize是1.75*10=17.5
爲了讓它更簡單一點,讓我們猜測我們有一個更高的(1.8米)人類所以我們的虛擬高度現在是。

現在考慮關於寬高比,我希望有一個16/9 ASPEKT比,這意味着,16/9 = width/*18*
我們的虛擬寬度爲。
現在我們有一個虛擬尺寸32 * 18m。最大的優勢:現在所有的東西都可以用米來計算。如果您想將人類移動1m,只需在其位置上加1。

正如我說媒體鏈接的Viewport可以均爲FitViewport進行遊戲,只要你想保持縱橫比爲HUD我猜StretchViewport將被罰款,但你可以嘗試不同的人,並選擇您的參訪。

希望它有幫助。

+0

感謝您的快速回復。而不是米可以告訴我像素,因爲我的遊戲是不是真實的世界,很難假設米和所有的大小。像素和背景圖形分辨率大小的虛擬大小?我認爲fillview是比fitview更好的選擇,沒有人喜歡黑條.. – 2014-10-31 17:18:07

+0

'FillView'用盡了整個屏幕,但就我所知,其他方面的口糧看到的屏幕較少,這對他們來說是不利的。在某些遊戲中這沒關係,有些遊戲可能不會。像素是非常困難的,因爲你是針對不同的分辨率,在不同的設備上游戲會有所不同。您可以選擇一些您想要支持的分辨率,並讓用戶在設置中進行選擇。然後用選定的分辨率創建視口 – Springrbua 2014-10-31 20:15:26

+1

這個答案是純金。謝謝你。 – Jesus 2017-03-22 11:55:39