From e161eb1117e3a94601eff6f0d5e75124ad4b85a0 Mon Sep 17 00:00:00 2001 From: yuki Date: Sat, 22 Nov 2025 12:10:09 -0300 Subject: [PATCH] add player walking state --- scenes/player/player.tscn | 11 +++++++++-- scenes/player/states/player_walking.gd | 22 ++++++++++++++++++++++ scenes/player/states/player_walking.gd.uid | 1 + 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 scenes/player/states/player_walking.gd create mode 100644 scenes/player/states/player_walking.gd.uid diff --git a/scenes/player/player.tscn b/scenes/player/player.tscn index 953a724..3e6933f 100644 --- a/scenes/player/player.tscn +++ b/scenes/player/player.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=6 format=3 uid="uid://cqm5besqgsb7x"] +[gd_scene load_steps=7 format=3 uid="uid://cqm5besqgsb7x"] [ext_resource type="Script" uid="uid://dpsocqnk0e6le" path="res://scenes/player/player.gd" id="1_dovo2"] [ext_resource type="SpriteFrames" uid="uid://6v5nyv2wo47g" path="res://scenes/player/assets/yukotsuki.aseprite" id="2_dovo2"] [ext_resource type="Script" uid="uid://diths5s8vd7lr" path="res://classes/state_machine/state_machine.gd" id="2_lvxji"] [ext_resource type="Script" uid="uid://cl6snimpmxcvu" path="res://scenes/player/states/player_idle.gd" id="3_p47bc"] +[ext_resource type="Script" uid="uid://bg5fu1ildsdnq" path="res://scenes/player/states/player_walking.gd" id="4_p47bc"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_gmlin"] radius = 6.0 @@ -12,15 +13,21 @@ height = 14.0 [node name="Player" type="CharacterBody2D"] collision_mask = 2 script = ExtResource("1_dovo2") +max_speed = 95.0 -[node name="StateMachine" type="Node" parent="."] +[node name="StateMachine" type="Node" parent="." node_paths=PackedStringArray("initial_state")] script = ExtResource("2_lvxji") +initial_state = NodePath("Idle") metadata/_custom_type_script = "uid://diths5s8vd7lr" [node name="Idle" type="Node" parent="StateMachine"] script = ExtResource("3_p47bc") metadata/_custom_type_script = "uid://bebe1y51hwns8" +[node name="Walking" type="Node" parent="StateMachine"] +script = ExtResource("4_p47bc") +metadata/_custom_type_script = "uid://bebe1y51hwns8" + [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] position = Vector2(0, -16) sprite_frames = ExtResource("2_dovo2") diff --git a/scenes/player/states/player_walking.gd b/scenes/player/states/player_walking.gd new file mode 100644 index 0000000..8758c26 --- /dev/null +++ b/scenes/player/states/player_walking.gd @@ -0,0 +1,22 @@ +extends PlayerState + + +var next_state: StringName + + +func _enter(_previous_state_path: String, _data: Dictionary = {}) -> void: + print("entering walking") + player.move_and_slide() + + +func _state_physics_update(_delta: float) -> void: + var movement_vector: Vector2 = player.get_movement_vector() + var direction: Vector2 = movement_vector.normalized() + player.velocity = direction * player.max_speed + + player.move_and_slide() + + if watch_state([WALKING]): return + + # TODO: animations + #player.sprite.play(player.anim_dir) diff --git a/scenes/player/states/player_walking.gd.uid b/scenes/player/states/player_walking.gd.uid new file mode 100644 index 0000000..9cb6f2a --- /dev/null +++ b/scenes/player/states/player_walking.gd.uid @@ -0,0 +1 @@ +uid://bg5fu1ildsdnq