您可以根据需要使用多种技术。如果您的爆炸是动画的,我只需使用带有 IAnimationListener 的 AnimatedSprite 来捕获动画何时更改帧和/或完成,然后删除爆炸精灵。
或者,您可以使用 DelayModifier - 我使用其中一个来“溶解岩石”
或者,您可以使用几乎任何其他修改器 - 例如移动修改器,例如 QuadraticBezierCurveMoveModifier,或修改器,例如 AlphaModifier。
无论使用何种修饰符,您都附加一个 IEntityModifierListener() 并在 onModifierFinished 中清理您的爆炸。
以下代码使用该技术“淡化”游戏板上的分数
gemScore.registerEntityModifier(new AlphaModifier(2f, 1f, 0f, new IEntityModifierListener() {
@Override
public void onModifierStarted(IModifier<IEntity> pModifier, IEntity pItem) {
// TODO Auto-generated method stub
}
@Override
public void onModifierFinished(IModifier<IEntity> pModifier, IEntity pItem) {
// TODO Auto-generated method stub
runOnUpdateThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
board.detachChild(gemScore);
}
});
}
}));
高温高压
这是 DelayModifier 的示例 - 相同的基本结构
mainScene.registerEntityModifier(new DelayModifier(3, new IEntityModifierListener() {
@Override
public void onModifierStarted(IModifier<IEntity> pModifier, IEntity pItem) {
// TODO Auto-generated method stub
}
@Override
public void onModifierFinished(IModifier<IEntity> pModifier, IEntity pItem) {
// TODO Auto-generated method stub
runOnUpdateThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
mainScene.detachChild(sign);
}
});
}
}));