我正在开发一个在 android 中使用 box2d 引擎的游戏。我通过为 320X480 分辨率定义的 xml 定义来创建物理世界。
现在在 box2d 中,我认为 1 个单位是 30 像素。问题是,除了为每个分辨率定义一个单独的 xml 以针对所有屏幕正确缩放之外,还有其他选择吗?
我试图从显示指标中获取屏幕密度并调整 box2d 使用的比例,但物理世界看起来并不相同。
有人遇到这种情况并解决了吗?
提前致谢。
使用您的 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 值创建边界形状,这样您将始终按照可用屏幕尺寸的比例工作。
您应该找到一种重新缩放绘图的方法,以便独立于分辨率,您可以在屏幕上放置相同数量的游戏内单位。可悲的是,由于我不知道 android API,因此我无法为您提供具体帮助。