bugfix> java > 投稿

いくつかのスプライトをレンダリングしようとしていますが、行 batch.setProjectionMatrix(cam.combined); が必要ですスプライトがカメラから独立して移動するために、このラインを追加すると、スプライトが突然異常に大きくなりますが、スプライトがなければ、スプライトは正常になります。プレイヤーのスプライトに設定した境界もスプライトのサイズと同様に拡張されるため、世界の寸法などを変更する疑いがありますが、背景(OrthogonalTiledMapRendererでレンダリングされたタイルマップ)は同じ。

これは通常のレンダリングです。https://ibb.co/m4T2GT

これは、setProjectionMatrixを使用したときに表示されるレンダリングです。https://ibb.co/j0EL38

(写真には外部サイトを使用しました。何らかの理由でここに追加できなかったためです)

これが私のレンダリング機能です。

player.draw(..);

そして

e.draw(..);

Spriteクラスのdraw関数を呼び出すだけです。

public void render() {
    handleInput();
    renderer.setView(cam);
    renderer.render();
    batch.setProjectionMatrix(cam.combined);
    batch.begin();
    player.draw(batch);
    for (Entity e: enemies) e.draw(batch);
    batch.end();
}

回答 1 件
  • フロートを使用できます: cam.zoom  すべてが表示される大きさを変更します。設定で変更するか、カメラオブジェクトを初期化した直後に変更すると、ズームのままになります。

    それでもうまくいかない場合は、マップのレンダリングをカメラの投影マトリックスにも設定する必要があります。

あなたの答え