Exemple #1
0
        public override void OnTick(Entity[] entities)
        {
            _entity.Direction             += (float)Math.Sign(_rotation) * 10;
            _entity.KnownPosition.HeadYaw += (float)Math.Sign(_rotation) * 10;
            _entity.KnownPosition.Yaw     += (float)Math.Sign(_rotation) * 10;
            _entity.BroadcastMove();

            _rotation -= 10;
        }
Exemple #2
0
        public void CalculateNextMove()
        {
            _entity.KnownPosition.HeadYaw += (float)Math.Sign(_rotation) * 10;
            _entity.KnownPosition.Yaw     += (float)Math.Sign(_rotation) * 10;
            _entity.BroadcastMove();

            _rotation -= 10;
        }
Exemple #3
0
        public void CalculateNextMove()
        {
            var dx = _player.KnownPosition.X - _entity.KnownPosition.X;
            var dz = _player.KnownPosition.Z - _entity.KnownPosition.Z;

            double tanOutput   = 90 - RadianToDegree(Math.Atan(dx / (dz)));
            double thetaOffset = 270d;

            if (dz < 0)
            {
                thetaOffset = 90;
            }
            var yaw = thetaOffset + tanOutput;

            double bDiff = Math.Sqrt((dx * dx) + (dz * dz));
            var    dy    = (_entity.KnownPosition.Y + _entity.Height) - (_player.KnownPosition.Y + 1.62);
            double pitch = RadianToDegree(Math.Atan(dy / (bDiff)));

            _entity.KnownPosition.Yaw     = (float)yaw;
            _entity.KnownPosition.HeadYaw = (float)yaw;
            _entity.KnownPosition.Pitch   = (float)pitch;
            _entity.BroadcastMove(true);
        }