私は Libgdx を初めて使用し、Game クラスを拡張するクラスを作成しました。問題は、Game の setScreen() メソッドが画面を交換していないことです。これは、画面を設定した後も、ゲームは render メソッドにあるものだけをレンダリングするためです。画面クラスのrenderメソッドにあるものではなく、ゲームクラスからのものです。これはコードです:
このコードを実行すると、ユーザーが画面に触れた (クリックした) ときに画面を変更しても、赤い画面しか表示されません
class myGame extends Game
{
GameScreen myOtherScreen;
public void create()
{
//create other screen
myMenuScreen = new GameScreen();
}
public void render(float delta)
{
// change screens if screen touched
if(Gdx.input.justTouched())
setScreen(myOtherScreen);
//render red screen
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
}
.
. //other methods
.
}
// ======= Screen Class ========
public class GameScreen implements Screen
{
@Override
public void render(float delta)
{
//render green screen
Gdx.gl.glClearColor(0, 1, 0, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
}
.
. //other methods
.
}