Android的碎片化始终受到开发者们的抱怨(ios如今也出现了相同的问题),各种分辨率,各种屏幕大小给开发测试带来了很大的困难。尤其是个人开发者,由于精力有限,
根本没法每个机型都测试一遍。刚开始使用libgdx,我针对各个分辨率都设定了一套坐标,那个痛苦啊。。。后来发现libgdx本身可以自适应分辨率,太傻叉了自己。
虽然可以自适应分辨率,但是是通过伸缩调整的,所以有些分辨率下画面会显得走形,但比起一个个去调整就将就了吧。我一般使用的游戏框架为
看一下stage的构造方法
public Stage(float width,float height,boolean stretch)
width
视图的宽
height 视图的高
stretch
是否拉伸视图至真实分辨率
我一般选择800x480作为基准分辨率
public class MyGame extends Game { MyScreen screen = null; @Override public void create() { //初始化界面,设定标准分辨率大小 screen = new MyScreen(800, 480); setScreen(screen); } }
所有的stage都以基准分辨率进行设计和排版
public class MyScreen implements Screen { private MyStage stage = null; public MyScreen(int baseW, int baseH) { //true 为自适应分辨率 stage = new MyStage(baseW, baseH, true); } @Override public void render(float arg0) { stage.draw(); } ...... }