2010-06-29 86 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

相关问题