Beispiel #1
0
 /// <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);
        }
Beispiel #3
0
 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;
 }
Beispiel #4
0
 /// <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;
			}
Beispiel #8
0
 public void SetSteering(ISteeringBehavior steering)
 {
     _steering = steering;
     _isSteering = true;
 }
Beispiel #9
0
 public PathFollowing(ISteeringBehavior pathFollowingBehavior, PathFollowingMode mode = PathFollowingMode.OneWay)
 {
     _pathFollowingBehavior = pathFollowingBehavior;
     PathFollowingMode      = mode;
 }