2

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

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

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

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

提前致谢。

4

2 回答 2

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

于 2011-03-23T13:48:19.660 回答
0

您应该找到一种重新缩放绘图的方法,以便独立于分辨率,您可以在屏幕上放置相同数量的游戏内单位。可悲的是,由于我不知道 android API,因此我无法为您提供具体帮助。

于 2010-06-29T15:35:06.877 回答