Jetpack Joyride のようなキャラクターが死ぬまで動き続けるゲームをやってみました。
カメラはキャラクターを追跡し、カメラ (およびキャラクター) の x 位置が約 5000 に達するまでは問題ありません。
私は、世界のすべてが 5.000.000 の x 位置から始まるようにテストしました。
すべてが本当に奇妙に見え始めました。スプライトはサイズと位置を変更しました oO
次に、2 つの長方形をレンダリングするだけの単純な画面を作成しました。「低い」x 位置を使用すると、すべてが正常に見えますが、カメラに「高い」x 位置を使用し始めると、長方形の形状が変わります。
試してみて、これを修正する方法を教えてください。
public ArsenalScreen(AwesomeRun game)
{
this.game = game;
renderer = new ShapeRenderer();
batch = new SpriteBatch();
camera = new OrthographicCamera();
camera.setToOrtho(false, 20, 20);
camera.viewportWidth = 30;
camera.viewportHeight = 20;
camera.position.x = 3;
// camera.position.x = 300000000;
camera.update(true);
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0.5f,0.5f,0.5f,1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
renderer.setProjectionMatrix(camera.combined);
renderer.begin(ShapeType.Rectangle);
renderer.identity();
renderer.rect(camera.position.x, camera.position.y, camera.viewportWidth/4, camera.viewportHeight/4);
renderer.rect(camera.position.x-camera.viewportWidth/2+0.5f, camera.position.y-camera.viewportHeight/2, camera.viewportWidth, camera.viewportHeight);
renderer.end();
}