Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使力在不同的分辨率下工作_Android_Box2d_Andengine_Game Physics - Fatal编程技术网

Android 使力在不同的分辨率下工作

Android 使力在不同的分辨率下工作,android,box2d,andengine,game-physics,Android,Box2d,Andengine,Game Physics,我面临方框2d中的多分辨率问题 首先,我需要使物体具有多分辨率,我通过按比例因子缩放顶点来解决它 现在我需要使所有不同分辨率设备的作用力相同, 有什么办法吗 我想让这行代码在所有设备上都能正常工作 obj.getBody().applyForce( new Vector2(0, -220), obj.getBody().getWorldCenter()); 这里220是我应该用这个公式使它多分辨率的因子 public float getY(float value) { y = (val

我面临方框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分辨率)时,游戏的运行速度非常慢。 有人能帮我解决这个问题吗?我试图解释我的问题。
提前感谢。

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

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

AnEngine将为缩放做所有其他事情

你需要从这个设备上得到的只是x和y像素的比例

在我在这个链接上的例子中,我只设置了一个变量,所有的变量都按这个比例缩放

所以,您只需决定要使用的初始比例,然后在不担心比例的情况下使用Box2D。您只需缩放正在查看场景的摄影机


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

摄像头高度的值是基于设备的分辨率,对吗?是的,对,摄像头高度和摄像头宽度是设备的分辨率我同意安德鲁的观点-更准确地说,我说选择一个尺寸(800x480,随便什么),写下这个,并让AndEngine使用正确配置的RatioResolutionPolicy缩放图形。@jmr499485:不是任何大小,但大小box2d已调整为可以使用。手册中有一部分是关于它的:图形正确缩放,我现在没有图形问题,我面临的问题是力,力在所有设备上的作用都不一样。@JawadAmjad:因为你在缩放物理。就像你说的“我通过按比例因子缩放顶点来解决它”——这是不正确的。不要这样做。在不同的设备上保持物理完全相同。规模graphics@Andrew我正在缩放图形,但出现了一个身体问题,身体没有缩放。所以我需要缩放身体。哦,是的,谢谢你,现在我找到你了。事实上,当其他朋友解释解决方案时,我没有使用你提到的摄像系统。现在我已经调整了相机的比例,一切正常。谢谢。