0

我正在为 800x480 的分辨率构建我的游戏。

我想知道如果它在更小或更大的设备上,引擎会自动缩放场景吗?

另外,如何为新的 Robovm 项目设置默认宽度和高度?

我正在使用 Box2D,但不确定屏幕如何支持不同设备(如 iphone 和 android)的工作。

PS我知道缩放不是最好的选择,但就我而言,它会很好。

4

3 回答 3

2

是的,引擎会缩放它,但为此你必须设置一个视口

在您的创建方法中执行此操作

float scrw = 800;
float scrh = 480;

camera = new OrthographicCamera();
camera.viewportHeight = scrh;
camera.viewportWidth = scrw;

camera.position.set(camera.viewportWidth * .5f,camera.viewportHeight * .5f, 0f);
camera.update();` 
于 2013-10-03T10:55:47.157 回答
2

一条建议,如果您使用的是 box2d,而不是使用这种方法,您的物理行为将面临很多问题,因为您的值对于相机来说太大了。例如,身体会相互通过而不会发生碰撞和其他类似的事情。

要解决此问题,请使用相机值作为

 camera.viewportHeight = scrh/40f;
 camera.viewportWidth = scrw/40f;

 camera.position.set(camera.viewportWidth/2f,camera.viewportHeight/2f, 0f);
 camera.update();

` 并且在绘制任何资产时将其大小设置为原始大小/40f,以便世界步长计算将以 20 ,12 而不是 800,480 的形式进行,从而改善您的物理行为。

对于非 box2d 屏幕,Sandeep 的解决方案对你来说总是有效的。

于 2013-10-04T04:28:46.157 回答
0

是的,您必须在每个屏幕中执行此操作...

于 2013-10-04T01:38:53.897 回答