registerEntityModifier의 정지방법으로 clearEntityModifiers()를 자주 사용하지만 복수의 registerEntityModifier 중에서 일부 스프라이트만 정지시키는 방법으로 unregisterEntityModifier와 Modifier의 움직임에 대해 살짝 메모합니다.

 

LoopEntityModifier lem = new LoopEntityModifier(new SequenceEntityModifier

(new MoveXModifier(0.5f, getX(), getX()-100),

new MoveXModifier(0.5f, getX()-100, getX())));   //a

 

AlphaModifier am = new AlphaModifier(3.0f, 0, 1); //b

MoveXModifier mxm = new MoveXModifier(3.0f, getX(), getX()-200); //c

MoveYModifier mym = new MoveYModifier(3.0f, getY(), getY()-200); //x

 

SequenceEntityModifier sem = new SequenceEntityModifier(am,mxm,mym); a,b,c,x 순서대로 실행

 

Sprite.registerEntityModifier(sem); //스프라이트에 장착

Sprite.registerEntityModifier(lem);    //스프라이트에 장착 

Sprite.unregisterEntityModifier(sem);  //sem만 삭제

 

똑같은 로직

Sprite.registerEntityModifier(new ParallelEntityModifier(
new SequenceEntityModifier(b、c、x),
new LoopEntityModifier(a));  

 

기타 참고로 JumpModifier !! 이런 것도 있음!!!

점프처리를 JumpModifier 이녀석에게 맡겨두면 중력계산 등 복잡한 것들은 엔드엔진이 알아서 다 처리해줌!!!

 

JumpModifier jm = new JumpModifier(점프시간, 점프개시X좌표, 점프개시Y좌표, 착지X좌표, 착지Y좌표, 높이);

--->JumpModifier jm = new JumpModifier(2.0f, Sprite.getX(), Sprite.getY(), Sprite.getX(), Sprite.getY(), 100);  이런 느낌!!!

 

Sprite.registerEntityModifier(new SequenceEntityModifier(
new JumpModifier(1.0f, 점프개시X좌표, 점프개시Y좌표, 착지X좌표, 착지Y좌표, 높이100),
new MoveYModifier(1.0f, Sprite.getY(), 지면의 Y좌표)));

지면과 접촉한 때에는 Sprite.clearEntityModifiers();를 사용하면 될듯... 일단 조금 더 고민을....................

 

 



 

 

 

 

 


 

  

Posted by BeansLove
,