ニーズに応じて使用できるテクニックがいくつかあります。爆発がアニメーション化されている場合は、アニメーションがフレームを変更したり終了したりしたときに、IAnimationListenerでAnimatedSpriteを使用してトラップし、爆発スプライトを削除します。
または、DelayModifierを使用することもできます-私はこれらの1つを使用して「岩を溶かす」
または、QuadraticBezierCurveMoveModifierのような移動するModifierや、AlphaModifierのようなModiferなど、他のほぼすべてのModifierを使用できます。
使用するモディファイヤに関係なく、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);
}
});
}
}));
HTH
これが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);
}
});
}
}));