5

LibGDX の使用中に問題が発生しています。

私は持っていてScreen、そのrender方法で私は持っています:

public class LoadingScreen implements Screen{
private OrthographicCamera guiCam;
private TankChallenge tankChallenge;
private SpriteBatch batcher;
private GL10 OpenGL;

public LoadingScreen(TankChallenge tankChallenge) {
    this.tankChallenge=tankChallenge;
    Gdx.graphics.setTitle("RobotChallange Beta - Loading");

    float AR = Gdx.graphics.getHeight()/Gdx.graphics.getWidth();
    guiCam = new OrthographicCamera(10,10 * AR);
    guiCam.position.set(10f/2,AR*10f/2,0);
    batcher = new SpriteBatch();

    OpenGL = Gdx.graphics.getGL10();
    //loadAssets();
}

@Override
public void render(float delta) {
    OpenGL.glClearColor(1, 0.5f, 1, 1);
    OpenGL.glClear(GL10.GL_COLOR_BUFFER_BIT);

    System.out.print("e");
    guiCam.update();
    Sprite sp = new Sprite();
    sp.setColor(1f,1f,0, 1);
    sp.setSize(100,100);
    sp.setOrigin(20, 0);

    batcher.setProjectionMatrix(guiCam.combined);
    batcher.begin();
    batcher.disableBlending();
    sp.draw(batcher);
    batcher.end();
}

これを実装ApplicationListenerクラスに設定して呼び出します。タイトルが実際には「RobotChallenge Beta - Loading」に設定されているため、LoadingScreen に到着していることがわかります。

4

3 に答える 3

20

両方の問題の解決策を見つけました。これをゲーム拡張クラスに追加しました:

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

これのおかげで問題は解決され、SetScreen メソッドをオーバーライドする必要はありません。ありがとう!

于 2013-04-01T09:42:57.643 に答える
2

これを画面として設定した直後にsuper.render()Game拡張クラスを呼び出す必要があります。たとえばGame、画面を設定するために、メインの拡張クラスで次のメソッドを使用します。

@Override
public void setScreen(Screen screen)
{
    super.setScreen(screen);
    super.render();
}

これはrender()呼び出されることを開始するようです。

于 2013-03-18T00:49:13.890 に答える