示例#1
0
        public void Control()
        {
            var player = _room.Player;

            if (_enemy.IsWaiting)
            {
                return;
            }
            var distance  = new Vector2(player.X - _enemy.X, player.Y - _enemy.Y).Length;
            var direction = new Vector2(player.X - _enemy.X, player.Y - _enemy.Y);

            if (direction.X < 0)
            {
                _enemy.TurnLeft();
            }
            if (direction.X > 0)
            {
                _enemy.TurnRight();
            }
            if (distance > 0.8f * _enemy.ShotRange)
            {
                if (_enemy.CanMove(direction, _room))
                {
                    _enemy.Move(direction);
                }
            }
            else
            {
                direction = new Vector2(player.X - _enemy.XAttack, player.YAttack - _enemy.Y);
                _enemy.Shoot(_room, new Shot(_enemy.XAttack, _enemy.YAttack, direction, _enemy));
            }
        }