2014-10-09 93 views
1

我正在製作一種類似於飛揚的鳥類的遊戲,但它適用於橫向模式,爲了使其更加公平,以便屏幕較大的用戶無法獲得優勢我將圖像更改爲屏幕%例如,鳥會佔屏幕高度的10%,所以在所有屏幕上都是一樣的,問題是,這是一個好主意還是有其他方法?libgdx使用圖像的百分比

+0

不是一個真正的編程問題。您可能會在gamedev.stackexchange.com上得到更好的答案。你提出的方法被用在許多遊戲中,但你必須考慮寬度和高度的各種尺度。另一種可能的解決方法是將屏幕上的玩家的位置設置爲與玩家移動的一側相距一定距離。這樣,所有設備在反應時間方面都處於同等地位。在較大的設備上播放會呈現更多的風景,但它是播放器後面的風景,因此不會影響遊戲播放。 – Tenfour04 2014-10-09 15:42:40

+0

如果您使用的是像素圖形,則您的方法會導致圖像看起來模糊不清或具有不均勻大小的像素(取決於您是否使用線性濾波)。 – Tenfour04 2014-10-09 15:46:16

回答

2

您不需要使用百分比。如果您使用的是libgdx,則可以(也應該)使用預定義的視口大小,因此屏幕分辨率由庫處理,而不是您處理。

你可以做到這一點使用相機,設定一個固定的高度,並計算寬度:

HEIGHT = 10; 
WIDTH = (Gdx.graphics.getWidth()/Gdx.graphics.getHeight())*HEIGHT; 

camera = new OrthographicCamera(); 
camera.setToOrtho(false, WIDTH, HEIGHT); 

這樣,你的高度將是10個單位。寬度將由屏幕x-y比率計算。

鳥將屏幕高度

的10%,那麼你的鳥將1種單位尺寸(高度/ 10)。

如果你想要雙方都是固定的(所以沒有人看到更多的寬度)。它更容易,但你的圖像不會保持它們的比例,它們將在兩個軸上延伸。

HEIGHT = 10; 
WIDTH = 15; 

camera = new OrthographicCamera(); 
camera.setToOrtho(false, WIDTH, HEIGHT);