added ducking!

This commit is contained in:
penelope 2023-06-08 16:52:52 -04:00
parent d59c37eb49
commit 9c6eb512d9
3 changed files with 84 additions and 4 deletions

View file

@ -83,6 +83,10 @@ func _physics_process(delta: float) -> void:
state_chart.send_event("jump")
if Input.is_action_just_pressed("shoot"): # shooting
state_chart.send_event("shoot")
if Input.is_action_pressed("ui_down"):
state_chart.send_event("duck_pressed")
if Input.is_action_just_released("ui_down"):
state_chart.send_event("duck_released")
# send relevant events
if is_on_floor(): # check on floor status
@ -141,6 +145,10 @@ func _on_Blinking_state_entered() -> void:
func _on_Stimming_state_entered() -> void:
animation_player.play("stim")
func _on_Ducking_state_entered():
velocity.x = 0
animation_player.play("duck")
func _on_Pushing_state_entered() -> void:
animation_player.play("push")

View file

@ -1,7 +1,7 @@
[gd_scene load_steps=43 format=2]
[gd_scene load_steps=44 format=2]
[ext_resource path="res://objects/player/player.gd" type="Script" id=1]
[ext_resource path="res://graphics/player/palettes/default.png" type="Texture" id=2]
[ext_resource path="res://graphics/player/sg_duck.png" type="Texture" id=2]
[ext_resource path="res://shaders/recolor_border.shader" type="Shader" id=3]
[ext_resource path="res://graphics/player/sg_idle.png" type="Texture" id=4]
[ext_resource path="res://addons/godot_state_charts/parallel_state.gd" type="Script" id=5]
@ -28,7 +28,6 @@
shader = ExtResource( 3 )
shader_param/border_color = Color( 0, 0, 0, 1 )
shader_param/border_corners = true
shader_param/palette = ExtResource( 2 )
[sub_resource type="Curve" id=13]
_data = [ Vector2( 0, 1 ), 0.0, -0.0636948, 0, 0, Vector2( 1, 0 ), -3.43886, 0.0, 0, 0 ]
@ -253,6 +252,58 @@ tracks/3/keys = {
"values": [ 0.0, 90.0, 180.0, 270.0 ]
}
[sub_resource type="Animation" id=20]
resource_name = "duck"
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath("Graphics/Sprite:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ ExtResource( 2 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Graphics/Sprite:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 1 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Graphics/Sprite:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 0 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Graphics/Sprite:rotation_degrees")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 0.0 ]
}
[sub_resource type="Animation" id=15]
resource_name = "fall"
length = 0.001
@ -852,6 +903,7 @@ anims/RESET = SubResource( 5 )
anims/blink = SubResource( 18 )
anims/climb = SubResource( 9 )
anims/double_jump = SubResource( 12 )
anims/duck = SubResource( 20 )
anims/fall = SubResource( 15 )
anims/fall_scared = SubResource( 14 )
anims/idle = SubResource( 6 )
@ -905,6 +957,11 @@ __meta__ = {
to = NodePath("../../Airborne/Jump/NormalJump")
event = "jump"
[node name="On Duck" type="Node" parent="StateChart/Root/Movement/Grounded"]
script = ExtResource( 10 )
to = NodePath("../Ducking")
event = "duck_pressed"
[node name="On LadderTouched" type="Node" parent="StateChart/Root/Movement/Grounded"]
script = ExtResource( 10 )
to = NodePath("../../Climbing")
@ -971,9 +1028,23 @@ script = ExtResource( 10 )
to = NodePath("../../Walking")
event = "walk_start"
[node name="Ducking" type="Node" parent="StateChart/Root/Movement/Grounded"]
script = ExtResource( 11 )
[node name="On DuckReleased" type="Node" parent="StateChart/Root/Movement/Grounded/Ducking"]
script = ExtResource( 10 )
to = NodePath("../../CanWalk/Still")
event = "duck_released"
[node name="On Shoot" type="Node" parent="StateChart/Root/Movement/Grounded/Ducking"]
script = ExtResource( 10 )
to = NodePath("../../Shooting")
event = "shoot"
guard_expression = "can_shoot"
[node name="Shooting" type="Node" parent="StateChart/Root/Movement/Grounded"]
script = ExtResource( 11 )
consumed_events = [ "jump" ]
consumed_events = [ "jump", "duck_pressed" ]
[node name="On ShootEnd" type="Node" parent="StateChart/Root/Movement/Grounded/Shooting"]
script = ExtResource( 10 )
@ -1180,6 +1251,7 @@ script = ExtResource( 8 )
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/CanWalk/Walking" to="." method="_on_Walking_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/CanWalk/Blinking" to="." method="_on_Blinking_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/CanWalk/Stimming" to="." method="_on_Stimming_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/Ducking" to="." method="_on_Ducking_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/Shooting" to="." method="_on_Shooting_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Grounded/Pushing" to="." method="_on_Pushing_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Grounded/Pushing" to="." method="_process_pushing"]