Извините, я не могу четко описать свою проблему. Я переописываю это:
- Делаю андроид игру с libgdx, а пока заканчиваю демку:
Он имеет только одно игровое представление, которое реализуется классом GameScreen, который является подклассом Screen в libgdx:
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 кнопок, вид игры переключается, но панель кнопок не переключается. Например, если игрок нажимает кнопку «Ранг», игра устанавливает режим просмотра «Рейтинг» (реализованный экраном «Ранг»), который показывает результаты игроков, а кнопки остаются видимыми:
Я могу придумать 2 способа сделать панель кнопок видимой:
Объедините панель кнопок и представление игры в экран libgdx. Я думаю, что это пустая трата времени, потому что мне нужно нарисовать 4 кнопки на каждом экране, всего 16 кнопок на 4 экранах.
Разделить экран телефона на 2 области; область просмотра игры и область панели кнопок. Область просмотра игры реализована с помощью экрана libgdx, и я могу переключать вид игры с помощью метода 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);
}
}
Любые предложения приветствуются.