2010-06-29 82 views
2

我正在開發一款在android中使用box2d引擎的遊戲。我通過爲320X480分辨率定義的xml定義來創建物理世界。適用於Box2d和Android的多種分辨率

現在在box2d我已經考慮到1單位是30像素。問題是,除了爲每個分辨率定義一個單獨的xml以外,還有其他任何選項可以針對所有屏幕正確縮放嗎?

我試圖從顯示度量中獲取屏幕密度,並調整box2d使用的尺度,但物理世界看起來不一樣。

有人遇到過這種情況並解決了嗎?

在此先感謝。

回答

0

您應該找到一種方法來重新調整您的繪圖,以使獨立於屏幕的遊戲單位數量與您的分辨率無關。可悲的是,我不能幫助你的具體細節,因爲我不知道android API。

2

使用您的PTM_RATIO 例如,將顯示尺寸轉換爲米來定義世界尺寸。

WindowManager w = getWindowManager(); 
Display d = w.getDefaultDisplay(); 
int width = d.getWidth(); 
int height = d.getHeight(); 

mWorldWidth = (float)(width/PTM_RATIO); 
mWorldHeight = (float)(height/PTM_RATIO); 

然後建立mWorldHeight和mWorldWidth值的邊界形狀,這樣你永遠合作,可用的屏幕大小的規模。

+0

嗨,羅布,感謝您的建議,PTM_RATIO會在這種情況下。 Box2d米到像素的比例?或屏幕寬度與高度的比率? – wysiwyg 2011-03-24 19:29:49

+0

準確地說,像素到米,你應該總是用box2d以米爲單位,否則你要求一個痛苦的世界,所以當你有一個像素數從用戶觸摸說,或在這種情況下,屏幕大小,總是轉換爲米。 – Rob 2011-03-25 08:57:41

相關問題