Ejemplo n.º 1
0
        public Vector2 Evade(BaseGameEntity target)
        {
            float   distance       = Vector2.Distance(target.position, position);
            float   ahead          = distance / 10;
            Vector2 futurePosition = target.position + target.velocity * ahead;

            return(Flee(futurePosition));
        }
Ejemplo n.º 2
0
        public void FireAt(BaseGameEntity ent, int id)
        {
            Vector2 direction = ent.GetCenter() - GetCenter();

            direction.Normalize();
            float rotation = (float)Math.Atan2(direction.Y, direction.X);

            this.rotation = rotation;
            gun.FireWeapon(rotation);
            //Game1.planet.bulletManager.AddBullet(GetCenter(), rotation, 50, .5f, 0);
        }
Ejemplo n.º 3
0
        public Vector2 Arrive(BaseGameEntity target, float slowingDistance)
        {
            Vector2 desiredVelocity = target.position - position;
            float   distance        = desiredVelocity.Length();

            if (distance < slowingDistance)
            {
                desiredVelocity.Normalize();
                desiredVelocity *= maxVelocity * (distance / slowingDistance);
            }
            else
            {
                desiredVelocity.Normalize();
                desiredVelocity *= maxVelocity;
            }
            Vector2 steering = desiredVelocity - velocity;

            return(steering);
        }
Ejemplo n.º 4
0
 public float GetDistanceToEntity(BaseGameEntity target)
 {
     return(Vector2.Distance(position, target.position));
 }