public override void Handle(DPosition position, float deltaTime) { var m_ForwardSpeed = deltaTime * 0.1f; float radians = position.RotationY * 0.0174532925f; position.PositionX -= (float)Math.Cos(radians) * m_ForwardSpeed; position.PositionZ += (float)Math.Sin(radians) * m_ForwardSpeed; }
public override void Handle(DPosition position, float deltaTime) { var m_ForwardSpeed = deltaTime * 0.03f; float radiansY = position.RotationY.ToRadians(); float radiansX = position.RotationX.ToRadians(); position.PositionX -= (float)Math.Sin(radiansY) * (float)Math.Cos(radiansX) * m_ForwardSpeed; position.PositionZ -= (float)Math.Cos(radiansY) * (float)Math.Cos(radiansX) * m_ForwardSpeed; position.PositionY += (float)Math.Sin(radiansX) * m_ForwardSpeed * 0.3f; }
public static void PreserveNormalPosition(this DPosition position) { if (position.RotationY > 360) { position.RotationY -= 360; } if (position.RotationX > 90) { position.RotationX = 90; } if (position.RotationX < -90) { position.RotationX = -90; } if (position.RotationY < -360) { position.RotationY += 360; } }
public override void Handle(DPosition position, float deltaTime) { Environment.Exit(0); }
public DPositionChangeHandler(DPosition position, DInput input) { _position = position ?? throw new ArgumentNullException(nameof(position)); _input = input ?? throw new ArgumentNullException(nameof(input)); _keyHandlerFactory = new KeyHandlerFactory(_input); }