From c323ae6575c87f3331e3d89f05fbe00902e9a0c2 Mon Sep 17 00:00:00 2001 From: Jakob Feldmann Date: Sat, 16 Sep 2023 14:03:47 +0200 Subject: [PATCH] fix: move out of wallsliding w/o walljump --- src/Actors/Blobby/Blobby.gd | 14 ++++++++++++++ .../MainMenu/ControlsMenu/ControlsMenu.tscn | 2 ++ 2 files changed, 16 insertions(+) diff --git a/src/Actors/Blobby/Blobby.gd b/src/Actors/Blobby/Blobby.gd index 904b1e8..0a17f3b 100644 --- a/src/Actors/Blobby/Blobby.gd +++ b/src/Actors/Blobby/Blobby.gd @@ -340,11 +340,25 @@ func calculate_wallslide_velocity( elif is_correct_airstrafe_input(): # var rev = 1 if !is_reversing_horizontal_movement(direction) else -1 linear_velocity = execute_airstrafe(linear_velocity, delta, direction) + elif ( + abs(direction.x + wall_touch_direction) < 1 + && abs(direction.x + wall_touch_direction) >= 0 + ): + var absolut = 1 - initial_velocity_dependence + var divisor = 1 / max(0.1, initial_velocity_dependence) + var movementFactor = absolut + abs(velocity.x) / (max_velocity["fall"].x * divisor) + linear_velocity.x = PhysicsFunc.two_step_euler( + linear_velocity.x, + acceleration_force["fall"].x * movementFactor * direction.x, + mass, + delta + ) else: # TODO dont put constants in here linear_velocity.y = PhysicsFunc.two_step_euler( linear_velocity.y * 0.94, _gravity * mass, mass, delta ) + # TODO single out to function air_strafe_charges = ( air_strafe_charges + 1 if max_air_strafe_charges > air_strafe_charges diff --git a/src/UserInterface/Screens/MainMenu/ControlsMenu/ControlsMenu.tscn b/src/UserInterface/Screens/MainMenu/ControlsMenu/ControlsMenu.tscn index 0eebad4..b6b0f41 100644 --- a/src/UserInterface/Screens/MainMenu/ControlsMenu/ControlsMenu.tscn +++ b/src/UserInterface/Screens/MainMenu/ControlsMenu/ControlsMenu.tscn @@ -255,6 +255,8 @@ follow_focus = true [node name="ActionKeyList" type="VBoxContainer" parent="Panel/KeymapViewer/ScrollContainer"] unique_name_in_owner = true +margin_right = 600.0 +margin_bottom = 189.0 size_flags_horizontal = 3 size_flags_vertical = 3 script = ExtResource( 14 )