2014-01-16 3 views
0

나는 AndEngine과 EntityModifier를 사용하여 많은 엔티티의 크기 나 위치와 같은 일부 속성에 애니메이션을 적용합니다. EntityModifiers가 완료된 후에 등록을 취소해야합니까? 아니면 이미 기본 동작입니까? AndEngine에서 EntityModifier를 등록 해제해야합니까?

그리고 필요하다면

는 : 더 나은
modifier.setAutoUnregisterWhenFinished(true); 

를 사용하거나 사전에

entity.unregisterEntityModifier(modifier); 

감사를 호출하는 것입니다.

+1

그것은 내가 AndEngine를 사용하기 때문에 오랜만이야,하지만 내 기억이 정확하다면 AutoUnregister 나의 필요를 위해 큰 일을 기본적으로 설정되어 있습니다. 귀하의 질문에 관해서는 - 당신이 등록을 취소하는 데 사용하는 방법은 중요하지 않습니다. AutoUnregister가 ON이면 AndEngine이 동일한 호출을합니다. – jmroyalty

답변

1

보호 부울 mFinished 수식 수명을 결정하는 두 개의 부울있다; private 부울 mAutoUnregisterWhenFinished = true;

기본적으로 mAutoUnregisterWhenFinished가 true 인 것을 볼 수 있습니다. 수정자가 끝나면 mFinished도 설정됩니다. 이 불리언 값들이 모두 나올 때 아래의 조건이 변경자를 파괴하기 위해 작동합니다. 귀하의 질문에 대해

if(modifier.isFinished() && modifier.isAutoUnregisterWhenFinished()) { 
       this.remove(i); 
      } 

그것은에 따라 달라집니다

entity.unregisterEntityModifier(modifier); 

u는

modifier.setAutoUnregisterWhenFinished(true); 

과 스프라이트 또는 entity.where에 새 수정을 적용 할 때 위의 코드를 사용하는 수정자가 끝날 때만 적용됩니다. 예를 들어 스프라이트에 터치 할 때 스프라이트에 움직임을 적용하고 싶다면 unregister 수정자를 사용하고 새로운 수식어를 적용 할 수 있습니다.

덕분에

관련 문제