2

そのため、これまでのところ、ゲームにlibgdxのステージクラスを使用しています。ステージにアクターを追加して、画面の背景を描画するだけです。問題は、ステージのカメラを動かして画面のスクロールをシミュレートすることです(背景画像が画面よりも大きい)カメラは動きません。今、私を夢中にさせているのは、デスクトップランチャーで実行したときに機能することですが、電話で実行したときは常にスクロールしません。何が問題なのか本当にわかりません。カメラを動かすメソッドが呼び出されるのは、メソッドが呼び出されても呼び出されるたびに、メソッドの名前をlogcatに記録しているためです。また、カメラの位置も記録して変更されますが、デスクトップで実行した場合にのみ、電話で実行した場合は同じ位置が記録されます。私はしません これがバグの原因であるかどうかはわかりませんが、デスクトップランチャーでのみ機能するのは非常に奇妙だと思います。そうです、Androidランチャーとデスクトップランチャーの両方が同じApplicationListenerインスタンスで初期化されます。助言がありますか?前もって感謝します。

簡略化されたコードは次のとおりです。

public void Create()
{
GameStage = new Stage(2000, 2000, true);

GameCamera = new OrthographicCamera(2000, 2000);
GameCamera.setToOrtho(true, 2000, 2000);

GameStage.setCamera(GameCamera);
GameStage.setViewport(2000, 2000, true);
}

public void MoveCamera()//it gets called when user drags across the screen
{
GameStage.getCamera().translate(x, y, 0);
GameStage.getCamera().update();
}


public void render()
   {
      //the background actor has been added at this point

      Gdx.gl.glClearColor(0, 0, 0, 1);
      Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

      GameStage.act(Gdx.graphics.getDeltaTime());
        GameStage.draw();

   }
4

1 に答える 1

5

カメラの位置を更新していない他の機能の問題であることに気付いたので、libgdxとは関係ありません。質問を削除できればと思いますが、デスクトップで機能していたのは奇妙です。

于 2012-09-22T01:10:50.273 に答える