0

render メソッドがありますが、なぜそれが起こらないのかわかりません。これまでのコードは次のとおりです。

public class DevMaze extends Game {

    SpriteBatch batch;
    BitmapFont font;

    public void create() {
        ...
        this.setScreen(new MainMenuScreen(this));
        ...
    }

    public void render() {
        super.render();
    }

    ...
}

MainMenuScreen が設定され、問題なくレンダリングされます。コードは次のとおりです。

    public class MainMenuScreen implements Screen {

    final DevMaze game;
    OrthographicCamera camera;

    public MainMenuScreen(final DevMaze g) {
        this.game = g;

        camera = new OrthographicCamera();
        camera.setToOrtho(false, 800, 480);
    }

    public void render(float delta) {
        ...
        if (Gdx.input.isTouched()) {
            game.setScreen(new GameScreen(game));    // This line runs
            dispose();
        }
    }

しかし、画面を GameScreen に設定すると、コンストラクターは問題なく実行されますが、render メソッドは起動しません。

public class GameScreen implements Screen {

    final DevMaze game;
    OrthographicCamera camera;
    ...

    public GameScreen(final DevMaze g) {
        this.game = g;

        // Create Camera
        camera = new OrthographicCamera();
        camera.setToOrtho(false, 800, 480);

        // Load assets
        ...

        System.out.println("ONE MORE LINE!");    // This prints
    }

    public void render() {
        System.out.println("MADE IT TO GAME SCREEN");    // This does not prints

        ...
    }

render メソッドが起動しない理由を知る必要があります。

ここからどこへ行けばいいのか本当にわかりません。私が見つけることができる他のすべてのリソースは、ゲーム拡張クラスに super.render() があることを確認するように指示します-私はそうします。無関係だと思われるコードを削除して、関連するものを残そうとしましたが、ここで何が起こっているのかを理解するために必要な情報が他にある場合は、お知らせください.

これは LibGDX を使った私の最初のプロジェクトの 1 つでもあります。

ありがとう。

4

1 に答える 1