2013-01-17 75 views
0

嗨,我使用和发动机在这里当我点击按钮,那个时候我需要提出两项精灵精灵正在细做一个应用程序,但我的要求,现在这两个精灵在相反的方向时,点击按钮都精灵要在这两个精灵有一些100的距离,我想停止使用animation.i下面的代码尝试,但其caluculating开始精灵的位置,在移动时它不是caluculating烈酒志愿服务岗位可以ü任何一个帮我搬然后屏幕中心....如何移动精灵在andengine

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); 

回答

0

试试这个,它可以帮助你。

MoveXModifier MOD =新MoveXModifier(2 banana.getX(),paddle.getX() - 100,新IEntityModifierListener(){

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

     } 

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

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

同样可以为下一次做

希望你的问题的这个答案,我可以理解。

+0

thnku。我会努力 – user1089640