diff --git a/overcooked_simulator/gui_2d_vis/overcooked_gui.py b/overcooked_simulator/gui_2d_vis/overcooked_gui.py index ba9e79a63ba897028bf2b3075b9eadff1cad825a..aa499ea24689acdc49b6166677e8b0e39aaf4e57 100644 --- a/overcooked_simulator/gui_2d_vis/overcooked_gui.py +++ b/overcooked_simulator/gui_2d_vis/overcooked_gui.py @@ -185,6 +185,7 @@ class PyGameGUI: if np.linalg.norm(move_vec) != 0: move_vec = move_vec / np.linalg.norm(move_vec) + print("move vector keys", move_vec) action = Action( key_set.name, ActionType.MOVEMENT, move_vec, duration=1 / self.FPS ) @@ -202,27 +203,29 @@ class PyGameGUI: # if a joystick is connected for current player if joysticks[key_set.joystick]: # Usually axis run in pairs, up/down for one, and left/right for the other. Triggers count as axes. - move_vec = np.zeros(2) # You may want to take into account some tolerance to handle jitter, and # joystick drift may keep the joystick from centering at 0 or using the full range of position values. # FIXME: hardcoded threshold for tolerance tolerance_threshold = 0.2 # axis 0 = joy stick left --> left & right axis_left_right = joysticks[key_set.joystick].get_axis(0) - if abs(axis_left_right) > tolerance_threshold: - move_vec[0] += axis_left_right - # axis 1 = joy stick right --> up & down axis_up_down = joysticks[key_set.joystick].get_axis(1) - if abs(axis_up_down) > tolerance_threshold: - move_vec[1] += axis_up_down - - if np.linalg.norm(move_vec) != 0: - move_vec = move_vec / np.linalg.norm(move_vec) - - action = Action( - str(key_set.joystick), ActionType.MOVEMENT, move_vec, duration=1 / self.FPS - ) - self.send_action(action) + if abs(axis_left_right) > tolerance_threshold or abs(axis_up_down) > tolerance_threshold: + move_vec = np.zeros(2) + if abs(axis_left_right) > tolerance_threshold: + move_vec[0] += axis_left_right + # axis 1 = joy stick right --> up & down + if abs(axis_up_down) > tolerance_threshold: + move_vec[1] += axis_up_down + + if np.linalg.norm(move_vec) != 0: + move_vec = move_vec / np.linalg.norm(move_vec) + + print("move_vec", move_vec) + action = Action( + str(key_set.joystick), ActionType.MOVEMENT, move_vec, duration=1 / self.FPS + ) + self.send_action(action) def handle_key_event(self, event): """Handles key events for the pickup and interaction keys. Pickup is a single action,