No more bean! Also modifier on grounded seems to be working.

This commit is contained in:
Dustin 2025-05-04 08:28:55 -07:00
parent b45272934f
commit f7f5ce1e61
3 changed files with 15 additions and 5 deletions

View File

@ -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)

View File

@ -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

View File

@ -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