private bool IsButtonPressed(string button) { if (button == "+X") { return(state.GetAxisPosition(JoystickAxis.Horizontal) == 1); } else if (button == "-X") { return(state.GetAxisPosition(JoystickAxis.Horizontal) == 0); } else if (button == "+Y") { return(state.GetAxisPosition(JoystickAxis.Vertical) == 1); } else if (button == "-Y") { return(state.GetAxisPosition(JoystickAxis.Vertical) == 0); } else { int value = -1; if (int.TryParse(button, out value)) { return(state.GetButtonState(value) == ButtonKeyState.Pressed); } } return(false); }
void Application_Idle(object sender, EventArgs e) { numericUpDown1.Maximum = JoystickInput.Joysticks.Count - 1; if (JoystickInput.Joysticks.Count > 0) { Joystick j = JoystickInput.Joysticks[(int)numericUpDown1.Value]; StringBuilder b = new StringBuilder(); b.AppendLine(j.Name); b.Append("Axis Count: "); b.AppendLine(j.AxisCount.ToString()); for (int i = 0; i < j.AxisCount; i++) { b.Append("Axis "); b.Append(i.ToString()); b.Append(": "); b.Append(j.GetAxisValue(i).ToString()); b.AppendLine(); } b.AppendLine(); b.Append("X: "); b.AppendLine(j.Xaxis.ToString()); b.Append("Y: "); b.AppendLine(j.Yaxis.ToString()); b.AppendLine(); b.Append("Buttons: "); for (int i = 0; i < j.ButtonCount; i++) { if (j.GetButtonState(i)) { b.Append(i.ToString()); } } lblJoystick.Text = b.ToString(); } Core.KeepAlive(); }
/// <summary> /// キーボードの押下情報を取得 /// </summary> public static ButtonState GetJoyState(Joystick joystick, int buttons) => AcceptInput?joystick.GetButtonState(buttons) : ButtonState.Free;
/// <summary> /// ジョイスティックのボタンが離されているか /// </summary> public static bool JoyFree(Joystick joystick, int buttons) => !AcceptInput || joystick.GetButtonState(buttons) == ButtonState.Free;
/// <summary> /// ジョイスティックのボタンが押離された /// </summary> public static bool JoyRelease(Joystick joystick, int buttons) => AcceptInput && joystick.GetButtonState(buttons) == ButtonState.Release;
/// <summary> /// ジョイスティックのボタンが押されているか /// </summary> public static bool JoyHold(Joystick joystick, int buttons) => AcceptInput && joystick.GetButtonState(buttons) == ButtonState.Hold;