在Box2d和Android中扩展多种分辨率

时间:2010-06-29 14:56:30

标签: android box2d

我正在开发一款在android中使用box2d引擎的游戏。我通过定义为320X480分辨率的xml来创建物理世界。

现在在box2d我认为1个单位是30像素。问题是,除了为每个分辨率定义一个单独的xml以便为所有屏幕正确缩放之外,还有其他选择吗?

我试图从显示指标中获取屏幕密度,并调整box2d使用的比例,但物理世界看起来并不相同。

有人遇到这种情况并解决了吗?

提前致谢。

2 个答案:

答案 0 :(得分: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值创建边界形状,这样您将始终按照可用屏幕尺寸的比例工作。

答案 1 :(得分:0)

你应该找到一种方法来重新缩放你的绘图,使其与你在屏幕上适合相同数量的游戏内单位的分辨率无关。可悲的是,由于我不知道android API,我无法帮助你了解具体细节。