Я пытаюсь использовать модификатор сущности для управления некоторыми спрайтами, и после завершения он должен отменить регистрацию самого себя. Я также добавил логическое значение, чтобы гарантировать, что оно не сработает снова во время движения. Проблема в том, что методы onModifierStarted и onModifierFinished не срабатывают.
Это код, который устанавливает модификатор сущности
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());
}
}