В настоящее время я пишу проект с множеством операторов if для проверки определенных значений. Мне кажется, что все эти утверждения кажутся неэффективными и отнимающими много времени в моей программе. Как я могу каким-либо образом оптимизировать или управлять этим?
Примечание. У меня нет опыта работы с C# и, возможно, я не понимаю многих концепций.
Пример в Raylib C#:
if (Raylib.IsGamepadAvailable(0) == true)
{
// looking around on gamepad
rotationV.X = Raylib.GetGamepadAxisMovement(0,GamepadAxis.RightX) * rotationS;
rotationV.Y = Raylib.GetGamepadAxisMovement(0,GamepadAxis.RightY) * rotationS;
// move on gamepad left joystick
if (Raylib.GetGamepadAxisMovement(0, GamepadAxis.LeftX) < 0)
movementV.X *= movementS;
if (Raylib.GetGamepadAxisMovement(0, GamepadAxis.LeftX) > 0)
movementV.X *= movementS;
if (Raylib.GetGamepadAxisMovement(0, GamepadAxis.LeftY) < 0)
movementV.Y *= movementS;
if (Raylib.GetGamepadAxisMovement(0, GamepadAxis.LeftY) < 0)
movementV.Y *= movementS;
}
else
{
// rotation on mouse
rotationV.X = Raylib.GetMouseDelta().X * rotationS/10;
rotationV.Y = Raylib.GetMouseDelta().Y * rotationS/10;
// move on normal controls WASD
if (Raylib.IsKeyDown(KeyboardKey.W))
movementV.Y *= movementS;
if (Raylib.IsKeyDown(KeyboardKey.S))
movementV.Y *= movementS;
if (Raylib.IsKeyDown(KeyboardKey.A))
movementV.X *= movementS;
if (Raylib.IsKeyDown(KeyboardKey.D))
movementV.X *= movementS;
movementV.X *= 0.1f;
movementV.X *= 0.1f;
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... statements