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();를 사용하면 될듯... 일단 조금 더 고민을....................
'Android & AndEngine' 카테고리의 다른 글
AndEngine(엔드엔진)을 AndroidStudio(안드로이드스튜디오)로 import하는 방법을 알아보자. (0) | 2015.08.28 |
---|---|
Android app - InstantMemory (0) | 2015.05.28 |
엔드엔진(AndEngine) 캐릭터 점프처리 (0) | 2014.11.17 |
Android AndEngine Aiming game (0) | 2014.09.21 |
andEngine(엔드엔진) Android Game "GRIDS RUSH" (0) | 2014.07.28 |