抱歉,我无法清楚地描述我的问题。我重新描述一下:
- 我正在用 libgdx 制作一个 android 游戏,现在我完成了一个演示:
它只有一个由 GameScreen 类实现的游戏视图,GameScreen 类是 libgdx 中 Screen 的子类:
public class LaohuGame extends Game {
public static final int FRUIT_NUM = 24;
public static final String WORK_DIR = "Desktop/assets/";
@Override
public void create() {
GameScreen gameScreen = new GameScreen(this);
setScreen(gameScreen);
}
public class GameScreen extends LaohuScreen {
private final Stage stage;
public static int START_X = 11;
public static int START_Y = 199;
public GameScreen(Game game) {
super(game);
stage = new Stage(GAME_WIDTH,GAME_HEIGHT,true);
//add actors to the stage
}
public class LaohuScreen implements Screen{
int GAME_WIDTH;
int GAME_HEIGHT;
protected Game game;
public LaohuScreen(Game game) {
this.game = game;
GAME_WIDTH = Gdx.graphics.getWidth();
GAME_HEIGHT = Gdx.graphics.getHeight();
}
GAME_WIDTH,GAME_HEIGHT 等于手机屏幕的宽度,高度,所以游戏视图会填满整个手机屏幕。
- 现在我继续开发我的游戏。我想在我的游戏中有 4 个游戏视图。每个游戏视图都由
Screen
libgdx 中的一个子类实现。我认为完成的游戏应该是这样的:
电话屏幕底部添加了一个按钮栏。当我单击 4 个按钮之一时,游戏视图切换了,但按钮栏没有切换。例如,如果玩家点击“Rank”按钮,游戏将视图设置为 Rank View(由 Rank 屏幕实现)显示玩家的分数,并且按钮仍然可见:
我可以想到两种保持按钮栏可见的方法:
将按钮栏和游戏视图组合到 libgdx 的屏幕中。我认为这是一种浪费,因为我需要在每个屏幕中绘制 4 个按钮,总共 4 个屏幕中的 16 个按钮。
将手机屏幕分成2个区域;游戏视图区域和按钮栏区域。libgdx的Screen实现的游戏视图区域,我可以通过setScreen方法切换游戏视图。问题是 libgdx 的屏幕似乎总是填满整个手机屏幕;我无法设置屏幕的宽度和高度。我尝试使用
resize(int width, int height)
降低屏幕高度的方法为按钮栏留出空白区域,但它不起作用。
代码:
public class LaohuGame extends Game {
public static final int FRUIT_NUM = 24;
public static final String WORK_DIR = "Desktop/assets/";
@Override
public void create() {
GameScreen gameScreen = new GameScreen(this);
setScreen(gameScreen);
}
@Override
public void setScreen(Screen screen) {
super.setScreen(screen);
this.getScreen().resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() * 5 / 10);
}
@Override
public void resize(int width, int height) {
if (getScreen() != null) getScreen().resize(width, height * 5 / 10);
}
}
任何建议表示赞赏。