在不同的决议上使力量相同

时间:2013-03-11 11:26:59

标签: android box2d andengine game-physics

我在方框2d中遇到多分辨率问题。

首先,我需要使物体具有多分辨率,我通过按比例因子缩放顶点来解决它。

现在我需要让力量与所有不同分辨率的设备相同, 有没有办法做到这一点?

我想让这行代码在所有设备上都能正常工作

obj.getBody().applyForce( new Vector2(0, -220), obj.getBody().getWorldCenter());

这里220应该是我应该通过这个公式使其成为多重因子

public float getY(float value) {
    y = (value / 540) * 100;
    return (y / 100) * CAMERA_HEIGHT;
}

这里540是基本分辨率。我打电话给getY(220)使其成为多分辨率。

当我在分辨率540 * 960上使用此代码时,它工作正常,但是当我更改设备时说出分辨率为720 * 1280时,游戏行为真的很慢。 任何人都可以帮我解决这个问题吗?我试图解释我的问题。 先谢谢你。

2 个答案:

答案 0 :(得分:2)

通过将相机设置为设备像素数以外的其他值来缩放图形。

Andengine会为缩放做其他事情。

您需要从设备获取的是x到y像素的比率。

在我在此链接的示例中,我只设置了一个变量,并且所有内容都缩放为。http://pastebin.com/WWGFvTVS

因此,您只需确定您想要处理的初始规模,并在不担心规模的情况下完成Box2D的工作。您只需缩放正在查看场景的相机。

我说的和其他人一样,你似乎并不理解他们。

答案 1 :(得分:1)

不要缩放物理。缩放图形。您应该在每个分辨率之间共享物理坐标系,以使您的模拟在不同设备上相同。