diff --git a/lib/classes/movement_state_receiver.gd b/lib/classes/movement_state_receiver.gd index 19ef65e..f0c6294 100644 --- a/lib/classes/movement_state_receiver.gd +++ b/lib/classes/movement_state_receiver.gd @@ -161,6 +161,9 @@ func new_move_actor_as_desired(_delta :float, _movement_override_normal := Vector2(0,0), _velocity_override := Vector2(0,0)) -> Vector2: + if _state.name == 'jump': + var foo = 2+2 # break + var calc_velocity = Vector2.ZERO if _velocity_override.x != 0.0: calc_velocity.x = _velocity_override.x @@ -202,8 +205,10 @@ func new_move_actor_as_desired(_delta :float, var modifier_indicator := '' var movement_parameters :MovementParameters = _state.get_movement_parameters() if modifier and modifier.is_active: - if !(_state.is_grounded and modifier.only_grounded): # Should we skip + if (_state.is_grounded and modifier.only_grounded): # Should we skip modifier_indicator = '*' + if _state.name == 'jump': + var foo = 2+2 # break movement_parameters.apply_state_modifier(modifier, move_direction.x) ## Inertia only applies if there is a difference between the @@ -356,6 +361,9 @@ func is_out_of_range(value: float, a: float, b: float) -> bool: ## the parent is. If Kinematic then move_and_slide, otherwise manually adjusted func apply_movement_to_parent( _velocity :Vector2) -> void: var snap = Vector2.DOWN * 8 + ## Disable snap when trying to jump (hacky?) + if _velocity.y < -8: + snap = Vector2.ZERO if parent is KinematicBody2D: velocity = parent.move_and_slide_with_snap(_velocity, snap , Vector2.UP, true) diff --git a/lib/classes/state_modifier_movement.gd b/lib/classes/state_modifier_movement.gd index df12213..2ca4b5f 100644 --- a/lib/classes/state_modifier_movement.gd +++ b/lib/classes/state_modifier_movement.gd @@ -67,3 +67,5 @@ func merge(_merge_from_modifier: StateModifier): horizontal_acceleration += _merge_from_modifier.horizontal_acceleration horizontal_speed_offset += _merge_from_modifier.horizontal_speed_offset horizontal_speed_offset_acceleration += _merge_from_modifier.horizontal_speed_offset_acceleration + direction = _merge_from_modifier.direction + only_grounded = _merge_from_modifier.only_grounded diff --git a/src/actors/players/playerE/PlayerE-Movement_StateReceiver.gd b/src/actors/players/playerE/PlayerE-Movement_StateReceiver.gd index 3ea3de4..cf0d1d8 100644 --- a/src/actors/players/playerE/PlayerE-Movement_StateReceiver.gd +++ b/src/actors/players/playerE/PlayerE-Movement_StateReceiver.gd @@ -33,8 +33,8 @@ func _ready(): func get_movement_direction() -> float: #return Input.get_axis('move_left', 'move_right') - desired_movement_vector.x = Input.get_axis("move_left_" + str(player_number), "move_right_" + str(player_number)) - return Input.get_axis("move_left_" + str(player_number), "move_right_" + str(player_number)) + desired_movement_vector.x = sign(Input.get_axis("move_left_" + str(player_number), "move_right_" + str(player_number))) + return desired_movement_vector.x # sign(Input.get_axis("move_left_" + str(player_number), "move_right_" + str(player_number))) var _wants_jump :bool func wants_jump() -> bool: @@ -305,8 +305,8 @@ func _state_process_physics_jump(): # request_state_change.call_func('idle') if velocity.y > 0: request_state_change.call_func('fall') - move_actor_as_desired() - #apply_movement_to_parent(new_move_actor_as_desired( physics_delta , current_state )) + #move_actor_as_desired() + apply_movement_to_parent(new_move_actor_as_desired( physics_delta , current_state )) func _state_process_physics_move(): # flip sprite in direction