안드엔진: 모디파이어

안드엔진의 모디파이어를 사용하면 엔티티의 전환 효과 또는 애니메이션 등을 쉽게 만들 수 있는데, org.andengine.entity.modifier 패키지 아래를 살펴보면 수많은 모디파이어 클래스가 있다. 클래스의 이름만으로도 해당 모디파이어가 무슨 일을 하는 것인지 쉽게 추론할 수 있다.

AlphaModifierColorModifierDelayModifierFadeInModifierFadeOutModifierJumpModifierMoveByModifierMoveXModifier MoveYModifierRotationAtModifierRotationByModifierRotationModifierScaleAtModifierScaleModifierSkewModifierPathModifier, CardinalSplineMoveModifier

사용법은 간단하다. 모디파이어의 생성자를 사용해서 인스턴스를 만들고, 엔티티의 registerEntityModifier() 메서드를 사용해서 엔티티에 장착해주면 된다. 해제하려면 unregisterEntityModifier() 메서드를 사용한다. 엔티티에 등록된 모든 모디파이어를 해제하려는 경우에는  clearEntityModifiers() 메서드를 사용하면 된다.
아래 소스코드는 이동 모디파이어인데, 첫 번째 매개변수를 소요 시간을 초로 나타낸 것이고, 그 외에 시작 좌표와 종료 좌표를 필요로 한다.
MoveModifier moveModifier = new MoveModifier(5, 0, 0 , posX, posY);
sprite.registerEntityModifier(moveModifier) ;

모디파이어의 작동 시작과 종료 시점에 특별히 처리할 사항이 있다면 다음과 같이 메서드를 오버라이드하면 된다.
MoveModifier moveModifier = new MoveModifier(5, 0, 0 , posX, posY){
    
@Override
    
protected void onModifierStarted (IEntity pItem) {                
         
super .onModifierStarted(pItem) ;
         
//TODO
    
}

    
@Override
    
protected void onModifierFinished (IEntity pItem) {
         
super .onModifierFinished(pItem) ;
         
//TODO
    
}
}
;


둘 이상의 모디파이어를 합쳐서 사용해야 하는 때에는 엔티티 모디파이어를 사용한다. 

LoopEntityModifierParallelEntityModifierSequenceEntityModifier

루프엔티티모디파이어는 지정된 모디파이어를 일정 횟수 또는 무한히 반복되도록 한다. 패러럴엔티티모디파이어는 여러 개의 모디파이어를 동시에 진행시키는 것이고, 시퀀스엔티티모디파이어는 모디파이어들을 순차적으로 진행시키는 것이다.
LoopEntityModifier loopEntityModifier = new LoopEntityModifier(moveModifier) ;




댓글

이 블로그의 인기 게시물

자바 암호화 확장 (JCE) 관련 자바 1.8.0_151 이후 변경 사항

좌표 변환: 회전 이동

HTTP POST