我正在为 800x480 的分辨率构建我的游戏。
我想知道如果它在更小或更大的设备上,引擎会自动缩放场景吗?
另外,如何为新的 Robovm 项目设置默认宽度和高度?
我正在使用 Box2D,但不确定屏幕如何支持不同设备(如 iphone 和 android)的工作。
PS我知道缩放不是最好的选择,但就我而言,它会很好。
是的,引擎会缩放它,但为此你必须设置一个视口
在您的创建方法中执行此操作
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();`
一条建议,如果您使用的是 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 的解决方案对你来说总是有效的。
是的,您必须在每个屏幕中执行此操作...