diff --git a/overcooked_simulator/game_content/layouts/empty.layout b/overcooked_simulator/game_content/layouts/empty.layout index e0147e33f9259720edbc7d4bb380e7a512d728a1..025527cbf7112bfd6af701004171676c31d2d3e1 100644 --- a/overcooked_simulator/game_content/layouts/empty.layout +++ b/overcooked_simulator/game_content/layouts/empty.layout @@ -1,8 +1,8 @@ _______ _______ _______ -__#____ -__#P___ +_______ +___PA__ _______ _______ _______ diff --git a/overcooked_simulator/overcooked_environment.py b/overcooked_simulator/overcooked_environment.py index c51de60a423afc030f7ebcc2ece6300c9932a388..7621761e3ab3fd6eba21404e833838a973498b51 100644 --- a/overcooked_simulator/overcooked_environment.py +++ b/overcooked_simulator/overcooked_environment.py @@ -415,6 +415,7 @@ class Environment: ], dtype=float, ) + print(player_positions, ".") targeted_positions = player_positions + ( player_movement_vectors * (self.player_movement_speed * d_time) @@ -456,47 +457,48 @@ class Environment: ] nearest_counter_to_player = closest_counter_positions - new_positions - print(nearest_counter_to_player) + # print(nearest_counter_to_player) - collided = np.min(counter_distances, axis=1) - 0.5 < self.player_radius + collided = np.min(counter_distances, axis=1) < self.player_radius + 0.5 # print(" COLLIDED", collided) # print("CLOSEST_COUNTER", closest_counter_positions) - relevant_axes = nearest_counter_to_player.argmax(axis=1) + relevant_axes = np.abs(nearest_counter_to_player).argmax(axis=1) relevant_values = nearest_counter_to_player.max(axis=1) - new_positions = player_positions + ( - updated_movement * (self.player_movement_speed * d_time) - ) - for idx, player in enumerate(player_positions): axis = relevant_axes[idx] if collided[idx]: # print("before", updated_movement) - if relevant_values[idx] - 0.5 > 0: + if nearest_counter_to_player[idx][axis] < 0: # print("settings more") - new_positions[idx, axis] = np.min( - [ - player_positions[idx, axis], - closest_counter_positions[idx, axis], - ] - ) - - # updated_movement[idx, axis] = np.max(updated_movement[idx, axis], 0) - if relevant_values[idx] + 0.5 < 0: + # new_positions[idx, axis] = np.min( + # [ + # player_positions[idx, axis], + # closest_counter_positions[idx, axis], + # ] + # ) + + updated_movement[idx, axis] = max(updated_movement[idx, axis], 0) + if nearest_counter_to_player[idx][axis] > 0: # print("settings less") - new_positions[idx, axis] = np.max( - [ - player_positions[idx, axis], - closest_counter_positions[idx, axis], - ] - ) - - # updated_movement[idx, axis] = np.min(updated_movement[idx, axis], 0) + # new_positions[idx, axis] = np.max( + # [ + # player_positions[idx, axis], + # closest_counter_positions[idx, axis], + # ] + # ) + + updated_movement[idx, axis] = min(updated_movement[idx, axis], 0) # print("after", updated_movement) # new_positions[collided] = player_positions[collided] + print(updated_movement, "-") + new_positions = player_positions + ( + updated_movement * (self.player_movement_speed * d_time) + ) + print(new_positions, "<") # new_positions[min_counter_distances < self.player_radius] = player_positions[min_counter_distances < self.player_radius]