Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / role / enemy / state / AIRunState.cs
@小李xl 小李xl on 16 Nov 2022 851 bytes 路径标记点

/// <summary>
/// AI 奔跑行为
/// </summary>
public class AIRunState : IState<Enemy>
{
    public StateEnum StateType { get; } = StateEnum.Run;
    public Enemy Master { get; set; }
    public StateController<Enemy> StateController { get; set; }
    public void Enter(StateEnum prev, params object[] args)
    {
        
    }

    public void PhysicsProcess(float delta)
    {
        var master = Master;
        if (master.LookTarget != null)
        {
            master.AnimatedSprite.Animation = AnimatorNames.ReverseRun;
            master.Velocity = (master.LookTarget.GlobalPosition - master.GlobalPosition).Normalized() * master.MoveSpeed;
            master.CalcMove(delta);
        }
    }

    public bool CanChangeState(StateEnum next)
    {
        return true;
    }

    public void Exit(StateEnum next)
    {
        
    }
}