我正在開發一款在android中使用box2d引擎的遊戲。我通過爲320X480分辨率定義的xml定義來創建物理世界。適用於Box2d和Android的多種分辨率
現在在box2d我已經考慮到1單位是30像素。問題是,除了爲每個分辨率定義一個單獨的xml以外,還有其他任何選項可以針對所有屏幕正確縮放嗎?
我試圖從顯示度量中獲取屏幕密度,並調整box2d使用的尺度,但物理世界看起來不一樣。
有人遇到過這種情況並解決了嗎?
在此先感謝。
我正在開發一款在android中使用box2d引擎的遊戲。我通過爲320X480分辨率定義的xml定義來創建物理世界。適用於Box2d和Android的多種分辨率
現在在box2d我已經考慮到1單位是30像素。問題是,除了爲每個分辨率定義一個單獨的xml以外,還有其他任何選項可以針對所有屏幕正確縮放嗎?
我試圖從顯示度量中獲取屏幕密度,並調整box2d使用的尺度,但物理世界看起來不一樣。
有人遇到過這種情況並解決了嗎?
在此先感謝。
您應該找到一種方法來重新調整您的繪圖,以使獨立於屏幕的遊戲單位數量與您的分辨率無關。可悲的是,我不能幫助你的具體細節,因爲我不知道android API。
使用您的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值的邊界形狀,這樣你永遠合作,可用的屏幕大小的規模。
嗨,羅布,感謝您的建議,PTM_RATIO會在這種情況下。 Box2d米到像素的比例?或屏幕寬度與高度的比率? – wysiwyg 2011-03-24 19:29:49
準確地說,像素到米,你應該總是用box2d以米爲單位,否則你要求一個痛苦的世界,所以當你有一個像素數從用戶觸摸說,或在這種情況下,屏幕大小,總是轉換爲米。 – Rob 2011-03-25 08:57:41