我正在开发一款在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