/// <summary> /// Retire l'acteur du monde pour supprimer son ancienne collision (si il en avait une) du gestionnaire de /// collision et lui attribue sa nouvelle collision, puis remet l'acteur dans le monde. /// </summary> /// <param name="actorCollision"> La nouvelle collision de l'acteur </param> public virtual void SetCollision(ActorCollision actorCollision) { World.GetWorld().RemoveActor(this); Collision?.Dispose(); Collision = actorCollision; World.GetWorld().AddActor(this); }
/// <summary> /// La fonction SetCollision() de la classe Actor est légèrement modifiée pour calculer ensuite l'ordonnée /// relative à l'acteur pour afficher sa barre de vie, si son affichage a été demandé à la création de /// l'acteur. /// </summary> /// <param name="actorCollision"></param> public sealed override void SetCollision(ActorCollision actorCollision) { base.SetCollision(actorCollision); if (_lifeSprite != null) { _lifeBar.WidthRatio = actorCollision.Hitbox.Width * LifebarWidth / EmptyBar.Width; } }
/// <summary> /// Ressussite l'acteur en lui restaurant sa collision, en lui jouant si possible une animation de type Birth /// (en donnant Stand comme type d'animation par défaut) et en le remettant dans le monde. /// </summary> public virtual void Revive() { _dead = false; if (Collision != null) { Collision = new ActorCollision(Collision); } var animation = SpriteHandler as AnimationHandler; if (animation != null) { animation.PlayAnimation(AnimationType.Birth, false); animation.AnimationType = AnimationType.Stand; } World.GetWorld().AddActor(this); }
/// <summary> /// Verrouille la fonction SetCollision, car elle n'est pas destinée à être réécrite. /// </summary> /// <param name="actorCollision"> La nouvelle collision de l'acteur </param> public sealed override void SetCollision(ActorCollision actorCollision) { base.SetCollision(actorCollision); }