From e03d6abbc86e2d2e64194c9cab39dae260b55fc1 Mon Sep 17 00:00:00 2001 From: James Tucker Date: Fri, 24 Feb 2023 09:32:34 -0800 Subject: [PATCH] Update finite state machine demo for 4.0.rc4 (#850) Co-authored-by: Hugo Locurcio --- 2d/finite_state_machine/Demo.tscn | 1 - 2d/finite_state_machine/README.md | 2 +- .../debug/ControlsPanel.tscn | 45 ++++++++++--------- .../debug/StatesStackDiplayer.tscn | 41 +++++++++-------- .../debug/states_stack_displayer.gd | 4 +- .../fonts/SourceCodePro-Black.ttf.import | 1 + .../fonts/SourceCodePro-Bold.ttf.import | 1 + 2d/finite_state_machine/icon.png.import | 2 +- 2d/finite_state_machine/player/Player.tscn | 8 +++- .../player/body.png.import | 2 +- .../player/shadow.png.import | 2 +- .../player/states/motion/in_air/jump.gd | 4 +- .../player/states/motion/on_ground/move.gd | 11 +++-- .../player/weapon/sword.gd | 2 +- .../player/weapon/sword.png.import | 2 +- 2d/finite_state_machine/project.godot | 35 +++++++++------ .../state_machine/state_machine.gd | 4 +- 17 files changed, 94 insertions(+), 73 deletions(-) diff --git a/2d/finite_state_machine/Demo.tscn b/2d/finite_state_machine/Demo.tscn index edb0647e..fd5ab0c5 100644 --- a/2d/finite_state_machine/Demo.tscn +++ b/2d/finite_state_machine/Demo.tscn @@ -79,6 +79,5 @@ layout_mode = 0 [node name="ControlsPanel" parent="Control" instance=ExtResource("4")] layout_mode = 1 -grow_horizontal = 0 [editable path="Player"] diff --git a/2d/finite_state_machine/README.md b/2d/finite_state_machine/README.md index 474e2462..6ef2bd87 100644 --- a/2d/finite_state_machine/README.md +++ b/2d/finite_state_machine/README.md @@ -6,7 +6,7 @@ pushdown automaton. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/516 diff --git a/2d/finite_state_machine/debug/ControlsPanel.tscn b/2d/finite_state_machine/debug/ControlsPanel.tscn index 4c40b36a..ce429b68 100644 --- a/2d/finite_state_machine/debug/ControlsPanel.tscn +++ b/2d/finite_state_machine/debug/ControlsPanel.tscn @@ -4,32 +4,37 @@ anchors_preset = 1 anchor_left = 1.0 anchor_right = 1.0 -offset_left = -220.0 -offset_bottom = 170.0 +offset_left = -150.0 +offset_bottom = 171.0 +grow_horizontal = 0 -[node name="Keys" type="Label" parent="."] -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = 10.0 -offset_top = 10.0 -offset_right = -10.0 -offset_bottom = -10.0 -text = "Shoot: +[node name="HBoxContainer" type="HBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -56.5 +offset_top = -65.0 +offset_right = 56.5 +offset_bottom = 65.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Actions" type="Label" parent="HBoxContainer"] +layout_mode = 2 +text = "Move: +Shoot: Attack: Stagger: Jump: Sprint:" -[node name="Keys2" type="Label" parent="."] -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = 10.0 -offset_top = 10.0 -offset_right = -10.0 -offset_bottom = -10.0 -text = "R +[node name="Keys" type="Label" parent="HBoxContainer"] +layout_mode = 2 +text = "WASD +R F X Space diff --git a/2d/finite_state_machine/debug/StatesStackDiplayer.tscn b/2d/finite_state_machine/debug/StatesStackDiplayer.tscn index b27b0f6e..6148761d 100644 --- a/2d/finite_state_machine/debug/StatesStackDiplayer.tscn +++ b/2d/finite_state_machine/debug/StatesStackDiplayer.tscn @@ -7,28 +7,31 @@ offset_right = 210.0 offset_bottom = 170.0 script = ExtResource("1") -[node name="Title" type="Label" parent="."] -anchors_preset = 5 -anchor_left = 0.5 -anchor_right = 0.5 -offset_left = -105.0 -offset_right = 105.0 -offset_bottom = 40.0 +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Title" type="Label" parent="VBoxContainer"] +layout_mode = 2 text = "Pushown" uppercase = true -[node name="States" type="Label" parent="."] -offset_left = 20.0 -offset_top = 50.0 -offset_right = 190.0 -offset_bottom = 170.0 -text = "Jump -Test" +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] +layout_mode = 2 -[node name="Numbers" type="Label" parent="."] -offset_left = 20.0 -offset_top = 50.0 -offset_right = 190.0 -offset_bottom = 170.0 +[node name="Numbers" type="Label" parent="VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 text = "1. 2." +horizontal_alignment = 2 + +[node name="States" type="Label" parent="VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "Jump +Test" diff --git a/2d/finite_state_machine/debug/states_stack_displayer.gd b/2d/finite_state_machine/debug/states_stack_displayer.gd index 5bf144b5..7d3ae0b6 100644 --- a/2d/finite_state_machine/debug/states_stack_displayer.gd +++ b/2d/finite_state_machine/debug/states_stack_displayer.gd @@ -10,5 +10,5 @@ func _process(_delta): states_names += String(state.get_name()) + "\n" numbers += str(index) + "\n" index += 1 - $States.text = states_names - $Numbers.text = numbers + %States.text = states_names + %Numbers.text = numbers diff --git a/2d/finite_state_machine/fonts/SourceCodePro-Black.ttf.import b/2d/finite_state_machine/fonts/SourceCodePro-Black.ttf.import index c009bf30..3d53fa4e 100644 --- a/2d/finite_state_machine/fonts/SourceCodePro-Black.ttf.import +++ b/2d/finite_state_machine/fonts/SourceCodePro-Black.ttf.import @@ -18,6 +18,7 @@ generate_mipmaps=false multichannel_signed_distance_field=false msdf_pixel_range=8 msdf_size=48 +allow_system_fallback=true force_autohinter=false hinting=1 subpixel_positioning=1 diff --git a/2d/finite_state_machine/fonts/SourceCodePro-Bold.ttf.import b/2d/finite_state_machine/fonts/SourceCodePro-Bold.ttf.import index f620924e..6eb82caf 100644 --- a/2d/finite_state_machine/fonts/SourceCodePro-Bold.ttf.import +++ b/2d/finite_state_machine/fonts/SourceCodePro-Bold.ttf.import @@ -18,6 +18,7 @@ generate_mipmaps=false multichannel_signed_distance_field=false msdf_pixel_range=8 msdf_size=48 +allow_system_fallback=true force_autohinter=false hinting=1 subpixel_positioning=1 diff --git a/2d/finite_state_machine/icon.png.import b/2d/finite_state_machine/icon.png.import index 5bdc1ba9..05d4c7d8 100644 --- a/2d/finite_state_machine/icon.png.import +++ b/2d/finite_state_machine/icon.png.import @@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.cte [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 compress/hdr_compression=1 -compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 mipmaps/generate=false diff --git a/2d/finite_state_machine/player/Player.tscn b/2d/finite_state_machine/player/Player.tscn index b5cf2e77..81fb0225 100644 --- a/2d/finite_state_machine/player/Player.tscn +++ b/2d/finite_state_machine/player/Player.tscn @@ -103,10 +103,14 @@ polygon = PackedVector2Array(-20, 0, -20, -20, 20, -20, 20, 0) [node name="StateNameDisplayer" type="Label" parent="."] offset_left = -109.0 -offset_top = -172.0 +offset_top = -180.0 offset_right = 110.0 -offset_bottom = -138.0 +offset_bottom = -143.0 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 8 +theme_override_font_sizes/font_size = 24 text = "Idle" +horizontal_alignment = 1 uppercase = true script = ExtResource("15") diff --git a/2d/finite_state_machine/player/body.png.import b/2d/finite_state_machine/player/body.png.import index f406dfa1..9630a52b 100644 --- a/2d/finite_state_machine/player/body.png.import +++ b/2d/finite_state_machine/player/body.png.import @@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/body.png-313f6363670a5852a7b7126ab476d8b1.cte [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 compress/hdr_compression=1 -compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 mipmaps/generate=false diff --git a/2d/finite_state_machine/player/shadow.png.import b/2d/finite_state_machine/player/shadow.png.import index 0af50511..d8495776 100644 --- a/2d/finite_state_machine/player/shadow.png.import +++ b/2d/finite_state_machine/player/shadow.png.import @@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/shadow.png-493c4635eca1ce8bdece629560617dc7.c [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 compress/hdr_compression=1 -compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 mipmaps/generate=false diff --git a/2d/finite_state_machine/player/states/motion/in_air/jump.gd b/2d/finite_state_machine/player/states/motion/in_air/jump.gd index 43201f1e..1d86b1d7 100644 --- a/2d/finite_state_machine/player/states/motion/in_air/jump.gd +++ b/2d/finite_state_machine/player/states/motion/in_air/jump.gd @@ -60,8 +60,8 @@ func move_horizontally(delta, direction): var steering_velocity = (target_velocity - horizontal_velocity).normalized() * air_steering_power horizontal_velocity += steering_velocity - # TODO: This information should be set to the CharacterBody properties instead of arguments. - owner.move_and_slide(horizontal_velocity) + owner.velocity = horizontal_velocity + owner.move_and_slide() func animate_jump_height(delta): diff --git a/2d/finite_state_machine/player/states/motion/on_ground/move.gd b/2d/finite_state_machine/player/states/motion/on_ground/move.gd index 5bdca0d2..ea4c8236 100644 --- a/2d/finite_state_machine/player/states/motion/on_ground/move.gd +++ b/2d/finite_state_machine/player/states/motion/on_ground/move.gd @@ -18,11 +18,11 @@ func handle_input(event): func update(_delta): var input_direction = get_input_direction() - if not input_direction: + if input_direction.is_zero_approx(): emit_signal("finished", "idle") update_look_direction(input_direction) - if Input.is_action_pressed(&"run"): + if Input.is_action_pressed("run"): speed = max_run_speed else: speed = max_walk_speed @@ -35,9 +35,8 @@ func update(_delta): func move(speed, direction): - velocity = direction.normalized() * speed - # TODO: This information should be set to the CharacterBody properties instead of arguments. - owner.move_and_slide(velocity, Vector2(), 5, 2) - if owner.get_slide_count() == 0: + owner.velocity = direction.normalized() * speed + owner.move_and_slide() + if owner.get_slide_collision_count() == 0: return return owner.get_slide_collision(0) diff --git a/2d/finite_state_machine/player/weapon/sword.gd b/2d/finite_state_machine/player/weapon/sword.gd index 42db8283..013e6250 100644 --- a/2d/finite_state_machine/player/weapon/sword.gd +++ b/2d/finite_state_machine/player/weapon/sword.gd @@ -96,7 +96,7 @@ func _on_body_entered(body): func _on_animation_finished(_name): - if not attack_current: + if attack_current.is_empty(): return if attack_input_state == AttackInputStates.REGISTERED and combo_count < MAX_COMBO_COUNT: diff --git a/2d/finite_state_machine/player/weapon/sword.png.import b/2d/finite_state_machine/player/weapon/sword.png.import index dfddbc54..534d90b6 100644 --- a/2d/finite_state_machine/player/weapon/sword.png.import +++ b/2d/finite_state_machine/player/weapon/sword.png.import @@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/sword.png-fc7f0084cdf333c826eda2b33f2ec3cc.ct [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 compress/hdr_compression=1 -compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 mipmaps/generate=false diff --git a/2d/finite_state_machine/project.godot b/2d/finite_state_machine/project.godot index 09fd5a70..57681cac 100644 --- a/2d/finite_state_machine/project.godot +++ b/2d/finite_state_machine/project.godot @@ -29,63 +29,72 @@ window/stretch/aspect="expand" move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":113,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) ] } move_up={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":122,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) ] } move_down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) ] } fire={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null) ] } run={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777237,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194325,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) ] } jump={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":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) ] } simulate_damage={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":88,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":88,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] } attack={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":70,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":70,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":6,"pressure":0.0,"pressed":false,"script":null) ] } + +[physics] + +common/physics_ticks_per_second=120 + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/2d/finite_state_machine/state_machine/state_machine.gd b/2d/finite_state_machine/state_machine/state_machine.gd index dbc11967..f3eaaba8 100644 --- a/2d/finite_state_machine/state_machine/state_machine.gd +++ b/2d/finite_state_machine/state_machine/state_machine.gd @@ -20,7 +20,7 @@ var _active = false: _active = value set_active(value) -func _ready(): +func _enter_tree(): if start_state.is_empty(): start_state = get_child(0).get_path() for child in get_children(): @@ -31,7 +31,7 @@ func _ready(): func initialize(initial_state): - set_active(true) + _active = true states_stack.push_front(get_node(initial_state)) current_state = states_stack[0] current_state.enter()