0

こんにちは、ここでエンジンを使用して 1 つのアプリを実行しています。ボタンをクリックすると、2 つのスプライトを移動する必要があります。約100の距離があり、アニメーションを停止したい.以下のコードを使用してみましたが、スプライトの開始位置を計算していますが、時間を移動しながら、スプライトの位置を計算していません....

  final float centerX = (CAMERA_WIDTH - this.mPaddleTextureRegionbtn.getWidth());
    final float centerY = (CAMERA_HEIGHT -  this.mPaddleTextureRegionbtn.getHeight()) / 2;
    paddle = new Sprite(centerX, centerY, this.mPaddleTextureRegionbtn, this.getVertexBufferObjectManager());
    final PhysicsHandler physicsHandler = new PhysicsHandler(paddle);
    paddle.registerUpdateHandler(physicsHandler);
 scene.attachChild(paddle);

 final AnimatedSprite banana = new AnimatedSprite(0, centerY,  this.mBananaTextureRegion, this.getVertexBufferObjectManager());
    banana.animate(100);
    scene.attachChild(banana);

  final float centerX1 = (CAMERA_WIDTH - this.mPaddleTextureRegion1.getWidth()) / 38;
        final float centerY1 = (CAMERA_HEIGHT - this.mPaddleTextureRegion1.getHeight()) /7;


     ButtonSprite moveRightButton = new ButtonSprite(centerX1, centerY1, this.mPaddleTextureRegion1, this.getVertexBufferObjectManager(), new OnClickListener() {

         @Override
         public void onClick(ButtonSprite pButtonSprite, float pTouchAreaLocalX,
                         float pTouchAreaLocalY) {      
             runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(Pong.this, "Haiii-------------", Toast.LENGTH_LONG).show();




                     MoveXModifier mod = new MoveXModifier(2, banana.getX(), paddle.getX()-100);
                    banana.registerEntityModifier(mod);


                     MoveXModifier mod1 = new MoveXModifier(2, paddle.getX(),banana.getX()+100);

                    paddle.registerEntityModifier(mod1);

                }
            });
         }
 });



     scene.attachChild(moveRightButton);
     scene.registerTouchArea(moveRightButton);
     scene.setTouchAreaBindingOnActionDownEnabled(true);  
4

1 に答える 1

0

これを試してください、それはあなたを助けるかもしれません.

MoveXModifier mod = new MoveXModifier(2, banana.getX(), paddle.getX()-100,new IEntityModifierListener() {

        @Override
        public void onModifierStarted(IModifier<IEntity> pModifier, IEntity pItem) 
        {

        }

        @Override
        public void onModifierFinished(IModifier<IEntity> pModifier, IEntity pItem) {

            banana.stopAnimation();
        }
    });
                banana.registerEntityModifier(mod);

次にできることは同じです。

これがあなたの質問の答えであることを願っています、私は理解できました。

于 2013-01-30T07:56:25.200 に答える