2013-01-17 4 views
0

안녕하세요 저는 여기에서 엔진을 사용하고 있습니다. 버튼을 클릭하면 2 개의 스프라이트를 움직일 필요가 있습니다. 스프라이트는 잘 움직이고 있지만, 이제는 두 스프라이트가 모두 반대 방향으로 움직입니다. 스프라이트는 움직일 때 화면 중앙으로 이동합니다. 두 개의 스프라이트가 100 개의 거리가 있으면 애니메이션을 멈추고 싶습니다. 다음 코드를 사용했지만 스프라이트 위치를 계산하려고 시도했지만 움직이는 시간은 움직이지 않습니다. 움직이지 않는 스프릿 포지션이 있으면 도움이됩니다.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 새로운 = 모드 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

관련 문제