3

アニメーション化されたスプライトが物理ハンドラでアニメーションを実行しない:

AndEngine GLES2AnalogOnScreenControlを使用してスプライトを移動しています。スプライトは人なので、脚の動きを示すために、アニメーション化されたスプライトにしました:

final AnimatedSprite person = new AnimatedSprite(personX, personY,
            this.mPersonTextureRegion, vertexBufferObjectManager);
    person.setScaleCenterY(this.mPersonTextureRegion.getHeight());
    person.setScale(2);

動きのために、私は物理ハンドラを作成しています:

final PhysicsHandler physicsHandler = new PhysicsHandler(person);
person.registerUpdateHandler(physicsHandler);
scene.attachChild(person);

これはスクリーン コントロールのコードです。

    final AnalogOnScreenControl analogOnScreenControl = new AnalogOnScreenControl(
            0, CAMERA_HEIGHT
                    - this.mOnScreenControlBaseTextureRegion.getHeight(),
            this.mCamera, this.mOnScreenControlBaseTextureRegion,
            this.mOnScreenControlKnobTextureRegion, 0.1f, 200,
            this.getVertexBufferObjectManager(),
            new IAnalogOnScreenControlListener() {
                @Override
                public void onControlChange(
                        final BaseOnScreenControl pBaseOnScreenControl,
                        final float pValueX, final float pValueY) {
                     physicsHandler
                     .setVelocity(pValueX * 100, pValueY * 100);
                     person.animate(new long[] { 200, 200, 200 }, 3, 5,
                     false);

                }

スクリーン コントロールは、アニメーション化されたスプライトに対して問題なく動作しますが、物理ハンドラを作成すると、アニメーション化されません。しかし、物理ハンドラーを作成しないとアニメーション化されます。では、物理ハンドラーを作成してもアニメーション化されないのはなぜですか?

4

2 に答える 2