Explorar o código

修复:正确地处理手柄轴的消费

并修改了摇杆死区
Eason20000 hai 2 meses
pai
achega
80df98cc28
Modificáronse 2 ficheiros con 9 adicións e 7 borrados
  1. 7 5
      objects/oMain/Step_0.gml
  2. 2 2
      scripts/Interaction/Interaction.gml

+ 7 - 5
objects/oMain/Step_0.gml

@@ -1,13 +1,15 @@
 if !global.altcontrol
 {
+    _gp_axislh = ingame.ga(gp_axislh)
+    _gp_axislv = ingame.ga(gp_axislv)
 	_jump_p    = ingame.kcp("Z")       || ingame.gcp(gp_face1);
 	_jump_r    = ingame.kcr("Z")       || ingame.gcr(gp_face1);
 	_dash      = ingame.kcp("C")       || ingame.gcp(gp_shoulderr);
 	_attack    = ingame.kcp("X")       || ingame.gcp(gp_face3);
-	_left      = ingame.kc(vk_left)    || ingame.gc(gp_padl) || (ingame.ga(gp_axislh) < 0);
-	_right     = ingame.kc(vk_right)   || ingame.gc(gp_padr) || (ingame.ga(gp_axislh) > 0);
-	_up        = ingame.kc(vk_up)      || ingame.gc(gp_padu) || (ingame.ga(gp_axislv) < 0);
-	_down      = ingame.kc(vk_down)    || ingame.gc(gp_padd) || (ingame.ga(gp_axislv) > 0);
+	_left      = ingame.kc(vk_left)    || ingame.gc(gp_padl) || (_gp_axislh < 0);
+	_right     = ingame.kc(vk_right)   || ingame.gc(gp_padr) || (_gp_axislh > 0);
+	_up        = ingame.kc(vk_up)      || ingame.gc(gp_padu) || (_gp_axislv < 0);
+	_down      = ingame.kc(vk_down)    || ingame.gc(gp_padd) || (_gp_axislv > 0);
 	_inventory = ingame.kcp("I")       || ingame.gcp(gp_face4);
 	_focus     = ingame.kcp("A")       || ingame.gcp(gp_face2);
 	_pause     = ingame.kcp(vk_escape) || ingame.gcp(gp_start);
@@ -38,7 +40,7 @@ _up_inv    = inventory.kcp(vk_up)    || inventory.gcp(gp_padl);
 _down_inv  = inventory.kcp(vk_down)  || inventory.gcp(gp_padr);
 _close_inv = inventory.kcp("I") || inventory.kcp(vk_escape) || inventory.gcp(gp_face4) || inventory.gcp(gp_start);
 
-_save_pause  = pause.kcp("Z");
+_save_pause  = pause.kcp("Z") || pause.gcp(gp_face1) ;
 _close_pause = pause.kcp("X") || pause.kcp(vk_escape) || pause.gcp(gp_face2) || pause.gcp(gp_start);
 
 if room != rTitle

+ 2 - 2
scripts/Interaction/Interaction.gml

@@ -19,7 +19,7 @@ function _gamepad_get(){
 	if (async_load[? "event_type"] == "gamepad discovered")
 	{
 	    var _pad = async_load[? "pad_index"];
-	    gamepad_set_axis_deadzone(_pad, 0.1);
+	    gamepad_set_axis_deadzone(_pad, 0.4);
 	    array_push(global.gamepads_list, _pad);
 	}
 	else if (async_load[? "event_type"] == "gamepad lost")
@@ -148,7 +148,7 @@ function _ga(_id, _priority = 0) {
     var _pad = _firstpad();
     if (_try_input_consume(_id, _priority)) {
         //判定成功则对 axis 进行消费
-        //global.input_consumed[$ string(_id)] = true; 
+        global.input_consumed[$ string(_id)] = true; 
         return gamepad_axis_value(_pad, _id);
     }
     return 0;