我正在开发一款在android中使用box2d引擎的游戏。我通过定义为320X480分辨率的xml来创建物理世界。
现在在box2d我认为1个单位是30像素。问题是,除了为每个分辨率定义一个单独的xml以便为所有屏幕正确缩放之外,还有其他选择吗?
我试图从显示指标中获取屏幕密度,并调整box2d使用的比例,但物理世界看起来并不相同。
有人遇到这种情况并解决了吗?
提前致谢。
答案 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,我无法帮助你了解具体细节。