2013-08-21 4 views
0

안녕하세요 저는 페이드 인하 고 스케일 아웃 한 후에 스케일을 페이드 인하려고 노력하고 있습니다. 이것을 위해 나는 Entitiy 수정 자 리스너를 사용했지만 작동하지 않는다? Heres 내 코드 :페이드 아웃 한 후 다시 페이드 인하겠습니까? 엔티티 한정자

public class GameScene { 

Scene gameScene; 
Engine engine; 
Activity activity; 

BitmapTextureAtlas mTextureAtlas; 
ITextureRegion X; 
ITextureRegion O; 
ITextureRegion XO; 

FadeInModifier fadeIn = new FadeInModifier(2); 
FadeOutModifier fadeOut = new FadeOutModifier(2); 
ScaleModifier scaleDown = new ScaleModifier(3, 1, 0); 
ScaleModifier scaleUp = new ScaleModifier(2, 0, 1); 

Sprite XOsprite; 
Random rand = new Random(); 
boolean XYset = false; 

public GameScene(Engine eng, Activity act) { 
    engine = eng; 
    activity = act; 
} 

public Scene getScene() { 

    gameScene = new Scene(); 
    gameScene.setBackground(new Background(0, 256, 59)); 
    int x = 0, y = 0; 

    if (rand.nextInt(2) == 0) { 
     XO = X; 
    } else { 
     XO = O; 
    } 

    if (!XYset) { 
     x = rand.nextInt(MainActivity.CAM_WIDTH); 
     y = rand.nextInt(MainActivity.CAM_HEIGHT); 
     XYset = true; 
    } 



    XOsprite = new Sprite(x, y, XO, engine.getVertexBufferObjectManager()) { 
     @Override 
     public boolean onAreaTouched(final TouchEvent te, final float xVal, 
       final float yVal) { 
      XOsprite.registerEntityModifier(fadeOut); 
      XOsprite.registerEntityModifier(scaleDown); 
      return true; 

     } 
    }; 
    IEntityModifierListener fadeOutListener = new IEntityModifierListener() { 

     @Override 
     public void onModifierStarted(IModifier<IEntity> pModifier, 
       IEntity pItem) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onModifierFinished(IModifier<IEntity> pModifier, 
       IEntity pItem) { 
      // TODO Auto-generated method stub 
      XOsprite.clearEntityModifiers(); 
      XOsprite.setPosition(rand.nextInt(MainActivity.CAM_WIDTH), rand.nextInt(MainActivity.CAM_HEIGHT)); 
      XOsprite.registerEntityModifier(fadeIn); 
      XOsprite.registerEntityModifier(scaleUp); 
     } 
    }; 
    fadeOut.addModifierListener(fadeOutListener); 
    XOsprite.registerEntityModifier(scaleUp); 
    XOsprite.registerEntityModifier(fadeIn); 

    gameScene.attachChild(XOsprite); 
    gameScene.registerTouchArea(XOsprite); 

    return gameScene; 
} 

스프라이트가 사라지고 아무 일도 일어나지 않습니다. 나는 또한 스프라이트가 화면의 임의의 위치로 바뀌길 원한다.

답변

0

페이드 인 및 스케일을 병렬로 수행하려면 parallelEntityModifier를 사용할 수 있습니다.

비슷하게 페이드 아웃 및 스케일 아웃을 사용하려면 parallelEntityModifier를 사용할 수 있습니다.

이 두 시퀀스를 연속적으로 실행하려면 SequenceEntityModifier를 사용하십시오. 시도해보십시오.

관련 문제