我正在开发我的第一个游戏,我有一个有死亡动画的玩家类(FlxSprite
)。
我想在动画结束后立即从舞台上移除播放器,但如果我使用:
player.animation.play('death');
remove(player);
动画没有完成,播放器就消失了。
答案 0 :(得分:0)
我在大多数项目中处理这个问题的方式是这样的:
override public function update(elapsed:Float):Void
{
if (!alive)
{
if (animation.finished)
{
exists = false;
}
super.update(elapsed);
}
// other update stuff...
super.update(elapsed);
}
override public function kill():Void
{
if (!alive || !exists)
{
return;
}
alive = false;
animation.play("death", true);
// Note: I DO NOT call super.kill() because I want to leave exists = true
}
而且,在您的PlayState或您要移除对象的任何位置,只需检查if (!player.exists) remove(player);
,我猜?我通常不会使用remove
,我只是等到状态被破坏然后用FlxDestroyUtil
清理所有内容。