0

スプライトをその中心で拡大縮小してから、同様にその中心を中心に回転しようとすると、その中心を中心に回転が発生しません。

たとえば、スケーリングされたボールを回転させる必要がある場合、その動作方法は、スケールの中心を 上部に設定し、左 (0,0)で必要なスケールを設定してから、回転の中心を中心に設定します。スケーリングされたスプライトを適用してから、回転修飾子を適用します。

blaBloBliSprite.setScaleCenter(0, 0);
blaBloBliSprite.setScale(0.667f);
blaBloBliSprite.setPosition(557, CAMERA_HEIGHT / 2 - blaBloBliSprite.getHeightScaled() / 2);
blaBloBliSprite.setRotationCenter(blaBloBliSprite.getWidthScaled() / 2,
blaBloBliSprite.getHeightScaled() / 2);

しかし、私はスプライトをその中心でもスケーリングしたいと考えています。

これを達成する方法は?ANDengine のアンカー ブランチはそれを解決しますか??

4

1 に答える 1

0

秘訣は、 setScaleCenter が期待どおりに機能していないことだと思います。0,0 に設定すると、アンカーの中心であっても、左上でスケーリングされます。

スプライトの幅と高さの 1/2 を使用してみてください。

blaBloBliSprite.setScaleCenter(blaBloBliSprite.getWidth()/2, blaBloBliSprite.getHeight()/2 );

余談ですが、アンカーの中心に切り替えると、スケールと回転の中心のデフォルト位置がスプライトの中心になるため、基本的な問題が解決されます。しかし、アンカーの中心でも 0,0 はスケールと回転の中心の左上です。デフォルトでは真ん中に配置されています。

于 2013-04-26T17:09:58.700 に答える