Я пытаюсь использовать модификатор сущности для управления некоторыми спрайтами, и после его завершения он должен отменить регистрацию себя. Я также добавил логическое значение, чтобы убедиться, что он не запускается снова во время движения. Проблема в том, что методы onModifierStarted и onModifierFinished не срабатывают.Andengine - IEntityModifierListener не работает
Это код, который устанавливает сущность модификатора
entityModifier = new SequenceEntityModifier(new IEntityModifierListener() {
@Override
public void onModifierStarted(IModifier<IEntity> pModifier, IEntity pItem) {
// TODO Auto-generated method stub
enabled = false;
}
@Override
public void onModifierFinished(IModifier<IEntity> pModifier, IEntity pItem) {
// TODO Auto-generated method stub
enabled = true;
pItem.unregisterEntityModifier((IEntityModifier) pModifier);
pModifier.reset();
}
},
new AlphaModifier(2f, 1f, 0f),
new RotationModifier(1, 0, 90),
new AlphaModifier(2, 1, 0),
new AlphaModifier(1, 0, 1),
new ScaleModifier(2, 1, 0.5f),
new DelayModifier(0.5f),
new ParallelEntityModifier(
new ScaleModifier(3, 0.5f, 5),
new RotationByModifier(3, 90)
),
new ParallelEntityModifier(
new ScaleModifier(3, 5, 1),
new RotationModifier(3, 180, 0)
)
);
Это метод, который регистрирует модификатор на спрайты. Это срабатывает от события касания
public void down(){
if (enabled) {
TitleSprite.registerEntityModifier(entityModifier.deepCopy());
OptionsButton.registerEntityModifier(entityModifier.deepCopy());
PlayButton.registerEntityModifier(entityModifier.deepCopy());
}
}