現在、宇宙船を持つ小惑星を避けなければならない小さなゲームでプログラミングしています。 FitViewportを使ってすべてのデバイスに同じように見えるようにする。残念ながら、Viewportsを使用すると、サイズ変更時に座標がちょっと消えてしまいます。最初に、クラス図を見て全体の外観を改善してください。FitViewportを使用すると座標がオフになります
これを修正するには(クラスDiagrammがObjectAidを使用して作成された)
私は宇宙船のクラスのupdate()メソッドでviewport.unproject()メソッドを実装する必要があります。 宇宙船クラス:
public void update()
{
if (Gdx.input.isTouched())
{
y = MyGdxGame.HEIGHT - Gdx.input.getY();
x = Gdx.input.getX();
sprite.setPosition(x, y);
}
}
ビューポートはGameScreenClassにのみavalibleであるので、私はちょうど更新方法で書く傾けます。 GameScreenは次のようになります:
@Override
public void render(SpriteBatch batch)
{
// TODO Auto-generated method stub
cam.update();
batch.setProjectionMatrix(cam.combined);
batch.begin();
em.render(batch);
[...]
}
私はGameScreenClassにホールコードを入れたくありません。 Viewportパラメータでupdateメソッドを作成しようとしましたが、白い画面が表示されました。どのように私はこの問題を解決できる別の方法はありますか?ここで私のプロジェクトを完全に見ることができます。 (https://github.com/Zui0per/SpaceAvoiding/tree/master/tmp)
ありがとうございました!