如何根据HaxeFlixel中的动画创建延迟?

时间:2015-08-23 00:22:55

标签: animation haxe haxeflixel ludumdare

我正在开发我的第一个游戏,我有一个有死亡动画的玩家类(FlxSprite)。

我想在动画结束后立即从舞台上移除播放器,但如果我使用:

player.animation.play('death');
remove(player);

动画没有完成,播放器就消失了。

1 个答案:

答案 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清理所有内容。