diff --git a/project.godot b/project.godot index 32ca37c..0201718 100644 --- a/project.godot +++ b/project.godot @@ -94,6 +94,14 @@ texture={ [input] +ui_accept={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777221,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777222,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) + ] +} move_left={ "deadzone": 0.5, "events": [ Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) @@ -126,6 +134,12 @@ boost_move={ , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) ] } +duck={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) + ] +} [layer_names] diff --git a/src/Actors/Blobby/Blobby.tscn b/src/Actors/Blobby/Blobby.tscn index 83ae3e0..bb043d2 100644 --- a/src/Actors/Blobby/Blobby.tscn +++ b/src/Actors/Blobby/Blobby.tscn @@ -133,6 +133,9 @@ script = ExtResource( 2 ) [node name="BlobbyStateMachine" type="Node" parent="."] script = ExtResource( 3 ) +coyote_hanging = null +init_boost = null +init_boost_type = null [node name="JumpBufferTimer" type="Timer" parent="BlobbyStateMachine"] wait_time = 0.067 diff --git a/src/Actors/Blobby/BlobbyStateMachine.gd b/src/Actors/Blobby/BlobbyStateMachine.gd index 95ad249..63f56db 100644 --- a/src/Actors/Blobby/BlobbyStateMachine.gd +++ b/src/Actors/Blobby/BlobbyStateMachine.gd @@ -14,6 +14,7 @@ onready var sprite = parent.get_node("BlobbySprite") # Adds the intial states func _ready(): add_state("idle") + add_state("duck") add_state("run") add_state("walk") add_state("jump") @@ -40,6 +41,8 @@ func _state_logic(delta): match self.state: "idle": handle_input_ref = funcref(self, "handle_idle_input") + "duck": + handle_input_ref = funcref(self, "handle_duck_input") "walk": handle_input_ref = funcref(self, "handle_walk_input") "run": @@ -65,11 +68,10 @@ func _state_logic(delta): func handle_idle_input(delta, direction) -> Vector2: - if Input.is_action_pressed("boost_move"): - return parent.handle_grounded_movement(delta, direction) - else: return parent.handle_grounded_movement(delta, direction) +func handle_duck_input(delta, direction) -> Vector2: + return parent.handle_duck_movement(delta, direction) func handle_walk_input(delta, direction) -> Vector2: return parent.handle_grounded_movement(delta, direction) @@ -144,6 +146,8 @@ func _get_transition(_delta): elif parent.velocity.x != 0: if Input.is_action_pressed("boost_move"): new_state = states.run + elif Input.is_action_just_pressed("duck"): + new_state = states.duck else: new_state = states.walk coyote_hanging = false