サイズを変更するいくつかのスプライト (まあ、実装するカスタム クラスSprite
など) があります。AndEngine は画像のサイズを中央から変更します。これにより、0,0 に配置された画像が 0,0 に表示されなくなります。これを修正するために適用しました
sprite.setScaleCenterX(0);
sprite.setScaleCenterY(0);
これにより、必要な場所に画像が配置されます。ただし、画像を回転させると、画像が移動します (画像が単純な正方形の場合、回転しても目に見える変化はありません)。これを修正するために適用しました
sprite.setRotationCenterX((sprite.getWidth() * sprite.getScaleX()) / 2);
sprite.setRotationCenterY((sprite.getHeight() * sprite.getScaleY()) / 2);
(何らかの理由で、 a のサイズを変更しSprite
てもスプライトの寸法は変更されず、ビジュアル イメージのみが変更されるため、スケールを掛けます)。ただし、これは問題を解決するものではなく、反転したときに画像が移動する場所が変わっただけです。
私の数学はここで外れていますか?画像が位置を動かさないように、これは画像の回転を中心にしないでしょうか? それとも、私が見逃しているものがありますか?
以下は完全なコードです。
Sprite sprite = new Sprite(0, 0, singleTrackTR, getVertexBufferObjectManager());
sprite.setScale(scaleX, scaleY);
sprite.setScaleCenterX(0);
sprite.setScaleCenterY(0);
sprite.setRotationCenterX((sprite.getWidth() * sprite.getScaleX()) / 2);
sprite.setRotationCenterY((sprite.getHeight() * sprite.getScaleY()) / 2);