1

我的游戏的所有层都以2:1的比例缩放和定位为 rootLayer 。

例如,在 java 版本下,我这样做了:

Config config = new Config();
config.width = 800;
config.height = 400;
JavaPlatform platform = JavaPlatform.register(config);

对于 Android,我想将 rootLayer 更改为可能的最大宽度,并且高度 = 宽度 / 2。

对于 800x480 的分辨率(如Google Nexus S),rootLayer 将在 800x400 中,并位于 (0, 40)。

有可能这样做吗?

4

1 回答 1

0

我终于找到了一种方法。如果 playn 开发人员经过这里,他们可能会告诉我这是否是最好的方法。

我重写了 GameActivity 的setContentView方法。在父级中,该方法将 GameViewGL 附加到主布局。因此,我复制了代码并对其进行了修改以添加我的尺寸和位置规范:

  @Override
  protected void setContentView(GameViewGL view) {
    BitmapDrawable bmp = new BitmapDrawable(getResources(), "");
    getWindow().setBackgroundDrawable(bmp);
    LinearLayout layout = new LinearLayout(this);
    layout.setBackgroundColor(0xFFFF0000);
    layout.setGravity(Gravity.CENTER);
    layout.addView(view);
    LayoutParams params = new LayoutParams(
        LayoutParams.MATCH_PARENT,
        LayoutParams.MATCH_PARENT
    );
    Point size = new Point();
    getWindowManager().getDefaultDisplay().getSize(size);
    if (size.y > size.x) {
        params.width = size.y;
        params.height = size.y / 2;
        layout.setY((size.x - size.y / 2) / 2);
    } else {
        params.width = size.x;
        params.height = size.x / 2;
        layout.setY((size.y - size.x / 2) / 2);
    }
    getWindow().setContentView(layout, params);
  }
于 2013-03-06T13:58:35.373 回答