申し訳ありませんが、私の問題を明確に説明することはできません。私はそれを再説明します:
- libgdx を使用して Android ゲームを作成していますが、今のところデモを完成させています。
libgdx の Screen のサブクラスである GameScreen クラスによって実装されるゲーム ビューは 1 つだけです。
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つのボタンを描画する必要があるため、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);
}
}
任意の提案をいただければ幸いです。