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; }
public void CalculateNextMove() { _entity.KnownPosition.HeadYaw += (float)Math.Sign(_rotation) * 10; _entity.KnownPosition.Yaw += (float)Math.Sign(_rotation) * 10; _entity.BroadcastMove(); _rotation -= 10; }
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); }