浏览代码

Merge pull request #3722 from Hinsbart/fix_action_pressed

fix joystick axis handling for Input.is_action_pressed()
Rémi Verschelde 9 年之前
父节点
当前提交
a63ebda21f
共有 1 个文件被更改,包括 12 次插入0 次删除
  1. 12 0
      main/input_default.cpp

+ 12 - 0
main/input_default.cpp

@@ -102,6 +102,18 @@ bool InputDefault::is_action_pressed(const StringName& p_action) {
 				if (joy_buttons_pressed.has(c))
 					return true;
 			} break;
+			case InputEvent::JOYSTICK_MOTION: {
+
+				const InputEventJoystickMotion &iejm=E->get().joy_motion;
+				int c = _combine_device(iejm.axis,device);
+				if (_joy_axis.has(c)) {
+					if (iejm.axis_value < 0) {
+						if (_joy_axis[c] < -0.5f) return true;
+					}
+					else
+						if (_joy_axis[c] > 0.5f) return true;
+				}
+			} break;
 		}
 	}