/// <summary> /// Remove steering behavior from the list of behaviors /// </summary> /// <param name="behavior">Reference to the behavior to be removed</param> public void RemoveBehaviour(ISteeringBehavior behavior) { if (!behaviors.Contains(behavior)) { return; } behaviors.Remove(behavior); }
public SteeringBuilder AddNestedBehavior(ISteeringBehavior behavior, ISteeringBehavior nestedBehavior, Predicate <ConditionArgs> condition = null) { behavior.NestedBehavior = nestedBehavior; AddBehavior(behavior, condition); return(this); }
public Adventurer(World world) { this._keyboardSteering = new KeyboardSteering(); this._seekAtSteering = new SeekAtSteering(); this._spriteSet = new AnimatedSpriteSet("adventurer.png", 32, 64); this._world = world; Mass = 1; MaxSpeed = 400; }
/// <summary> /// Adds a new steering behavior to the list of behaviors /// </summary> /// <param name="behavior">Reference to the behavior to be added</param> public void AddBehaviour(ISteeringBehavior behavior) { if (behavior == null) { throw new NullReferenceException("Please initialize the behavior"); } if (behaviors.Contains(behavior)) { return; } behaviors.Add(behavior); behavior.OnStart(); }
public SteeringBuilder AddBehavior(ISteeringBehavior behavior, Predicate <ConditionArgs> condition = null) { var cmp = _entity.AddComponent(behavior as SteeringComponentBase); if (_isAnyBehaviorAdded) { cmp.IsAdditive = true; } if (condition != null) { cmp.Condition = condition; } _isAnyBehaviorAdded = true; return(this); }
public override Vector2 Steer(ISteeringTarget target) { var dv = Leader.Velocity; var force = Vector2.Zero; dv.Normalize(); dv *= LeaderBehindDist; _ahead = Leader.Position + dv; dv *= -1; _behind = Leader.Position + dv; //if (IsOnLeaderSight(_ahead)) // force += _evade.Steer(Leader as ISteeringTarget); ISteeringBehavior nestedBehavior = NestedBehavior ?? _arrival; return(force + nestedBehavior.Steer((Vector2SteeringTarget)_behind)); }
public X(ISteeringBehavior behavior) { Enabled = true; Weight = 1d; Behavior = behavior; }
public void SetSteering(ISteeringBehavior steering) { _steering = steering; _isSteering = true; }
public PathFollowing(ISteeringBehavior pathFollowingBehavior, PathFollowingMode mode = PathFollowingMode.OneWay) { _pathFollowingBehavior = pathFollowingBehavior; PathFollowingMode = mode; }