2

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();
    }
4

1 に答える 1