WIP duck behaviour

feature/fight_system
kziolkowski 6 months ago
parent 8d40529349
commit 6b5a8ee126

@ -2,4 +2,5 @@
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AArea3D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F8a54226fa2e1c9371a8091f24cfd744aef11fe6869527dc23b9b837623a29b9_003FArea3D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AArea3D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F8a54226fa2e1c9371a8091f24cfd744aef11fe6869527dc23b9b837623a29b9_003FArea3D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAudioStreamPlayer2D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F848324b1c23114c3f5e8bbb5a42c4ade394c59a7a7a133a66b76581ca571_003FAudioStreamPlayer2D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAudioStreamPlayer2D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F848324b1c23114c3f5e8bbb5a42c4ade394c59a7a7a133a66b76581ca571_003FAudioStreamPlayer2D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACastHelpers_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fd111abf504bf42b5968a609b168fd093b2e200_003Fbb_003F1c116fcd_003FCastHelpers_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACastHelpers_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fd111abf504bf42b5968a609b168fd093b2e200_003Fbb_003F1c116fcd_003FCastHelpers_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACharacterBody2D_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fbba0bbd7a98ee58286e9484fbe86e01afff6232283f6efd3556eb7116453_003FCharacterBody2D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANode_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Ff1d69ec2da76ccf9bc8a75c8e0fdca9a7ba1adf8c8c9d5047e2fa5991c02eca_003FNode_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANode_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Ff1d69ec2da76ccf9bc8a75c8e0fdca9a7ba1adf8c8c9d5047e2fa5991c02eca_003FNode_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>

@ -43,7 +43,7 @@ _data = {
&"new_animation": SubResource("Animation_kjie1") &"new_animation": SubResource("Animation_kjie1")
} }
[node name="Duck" type="Node2D" node_paths=PackedStringArray("_characterBody", "_nakNakAudio", "_wingFlapAudio")] [node name="Duck" type="Node2D" node_paths=PackedStringArray("_characterBody", "_nakNakAudio", "_wingFlapAudio", "_duckRight", "_duckLeft")]
script = ExtResource("2_nm4n7") script = ExtResource("2_nm4n7")
_characterBody = NodePath("CharacterBody2D") _characterBody = NodePath("CharacterBody2D")
_nakNakAudio = NodePath("Audio/NakNak") _nakNakAudio = NodePath("Audio/NakNak")
@ -51,59 +51,244 @@ _wingFlapAudio = NodePath("Audio/WingFlutter")
_runningSpeed = 3000.0 _runningSpeed = 3000.0
_slowSpeed = 500.0 _slowSpeed = 500.0
_minDistanceToVesna = 1500.0 _minDistanceToVesna = 1500.0
_duckRight = NodePath("CharacterBody2D/bodyLookingRight")
_duckLeft = NodePath("CharacterBody2D/bodyLookingLeft")
[node name="CharacterBody2D" type="CharacterBody2D" parent="."] [node name="CharacterBody2D" type="CharacterBody2D" parent="."]
position = Vector2(0, -535)
collision_mask = 7 collision_mask = 7
[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"]
z_index = 1
y_sort_enabled = true
position = Vector2(0, 295) position = Vector2(0, 295)
shape = SubResource("CircleShape2D_nb25w") shape = SubResource("CircleShape2D_nb25w")
[node name="body" type="Node2D" parent="CharacterBody2D"] [node name="bodyLookingRight" type="Node2D" parent="CharacterBody2D"]
z_index = 1
y_sort_enabled = true
position = Vector2(-5, -2)
rotation = 0.0135349
[node name="head" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight"]
z_index = 1
y_sort_enabled = true
position = Vector2(46.9624, 76.1606)
rotation = 0.284615
scale = Vector2(1, 0.997)
skew = 0.024546
texture = ExtResource("1_cgxhx")
offset = Vector2(25.2328, -23.0689)
region_enabled = true
region_rect = Rect2(45, 24, 87, 82)
[node name="beak upper" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight/head"]
z_index = 1
y_sort_enabled = true
position = Vector2(50.669, -7.16257)
rotation = -0.0427724
scale = Vector2(0.62715, 0.62715)
texture = ExtResource("1_cgxhx")
offset = Vector2(57.1263, -7.47815)
region_enabled = true
region_rect = Rect2(292, 37, 152, 98)
[node name="beak lower" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight/head"]
z_index = 1
y_sort_enabled = true
position = Vector2(47.9076, -15.7341)
rotation = 0.0364142
scale = Vector2(0.58615, 0.58615)
texture = ExtResource("1_cgxhx")
offset = Vector2(60.4601, 37.8134)
region_enabled = true
region_rect = Rect2(295, 170, 145, 39)
[node name="torso" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight"]
z_index = 1
y_sort_enabled = true
position = Vector2(5.90997, 355.352)
scale = Vector2(1.07526, 1.01724)
texture = ExtResource("1_cgxhx")
offset = Vector2(2.87376, -131.092)
region_enabled = true
region_rect = Rect2(30, 168, 125, 326)
[node name="wingR" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight"]
z_index = 1
y_sort_enabled = true
position = Vector2(-28, 262)
rotation = -0.371117
texture = ExtResource("1_cgxhx")
offset = Vector2(-50, 50)
region_enabled = true
region_rect = Rect2(196, 231, 180, 164)
[node name="wingL" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight"]
z_index = 1
y_sort_enabled = true
position = Vector2(47.0695, 245.905)
rotation = -0.0925884
scale = Vector2(1.31536, 1.25948)
skew = -0.0345086
texture = ExtResource("1_cgxhx")
offset = Vector2(-59.5924, 55.37)
region_enabled = true
region_rect = Rect2(196, 231, 180, 164)
[node name="underbelly" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight"]
z_index = 1
y_sort_enabled = true
position = Vector2(-11.4038, 439.203)
rotation = -2.98225
scale = Vector2(0.672245, 0.955267)
skew = 0.0185422
texture = ExtResource("1_cgxhx")
offset = Vector2(26.4135, 70.6083)
region_enabled = true
region_rect = Rect2(196, 231, 180, 164)
[node name="leg left" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight"]
position = Vector2(36.2887, 300.645)
rotation = 2.42655
scale = Vector2(1.05221, 1.04106)
skew = -0.0544101
texture = ExtResource("1_cgxhx")
region_enabled = true
region_rect = Rect2(196, 231, 177, 161)
[node name="left thigh" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight/leg left"]
z_index = 1
y_sort_enabled = true
position = Vector2(73.353, -69.771)
rotation = -2.57238
scale = Vector2(0.651005, 0.688137)
texture = ExtResource("1_cgxhx")
region_enabled = true
region_rect = Rect2(368, 263, 81, 89)
[node name="left shin" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight/leg left/left thigh"]
z_index = 1
y_sort_enabled = true
position = Vector2(-5.71882, 19.9984)
rotation = 2.69159
scale = Vector2(0.88169, 0.852516)
skew = -0.0440769
texture = ExtResource("1_cgxhx")
offset = Vector2(10, -50)
region_enabled = true
region_rect = Rect2(360, 361, 68, 126)
[node name="left foot" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight/leg left/left thigh/left shin"]
z_index = 1
y_sort_enabled = true
position = Vector2(15.1289, -77.6075)
rotation = -2.65268
scale = Vector2(1.12319, 1.12319)
texture = ExtResource("1_cgxhx")
offset = Vector2(40, 40)
region_enabled = true
region_rect = Rect2(246, 393, 111, 111)
[node name="right leg" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight"]
z_index = 1
y_sort_enabled = true
position = Vector2(-24, 364)
rotation = -0.463741
scale = Vector2(1.07492, 1.01762)
texture = ExtResource("1_cgxhx")
region_enabled = true
region_rect = Rect2(196, 231, 177, 161)
[node name="right thigh" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight/right leg"]
z_index = 1
y_sort_enabled = true
position = Vector2(-29.7603, 44.2374)
rotation = 0.249342
scale = Vector2(0.625107, 0.655894)
skew = 0.02161
texture = ExtResource("1_cgxhx")
region_enabled = true
region_rect = Rect2(368, 263, 81, 89)
[node name="right shin" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight/right leg/right thigh"]
z_index = 1
y_sort_enabled = true
position = Vector2(-2.78734, 11.5692)
rotation = 0.0689206
scale = Vector2(1.12016, 1.07128)
skew = -0.0877244
texture = ExtResource("1_cgxhx")
offset = Vector2(-14.163, 37.0936)
region_enabled = true
region_rect = Rect2(360, 361, 68, 126)
[node name="right foot" type="Sprite2D" parent="CharacterBody2D/bodyLookingRight/right leg/right thigh/right shin"]
z_index = 1
y_sort_enabled = true
position = Vector2(-20.0986, 67.7507)
rotation = 0.14855
scale = Vector2(1.212, 1.212)
texture = ExtResource("1_cgxhx")
offset = Vector2(40, 40)
region_enabled = true
region_rect = Rect2(246, 393, 111, 111)
[node name="bodyLookingLeft" type="Node2D" parent="CharacterBody2D"]
visible = false
z_index = 1
y_sort_enabled = true
position = Vector2(-5, -2) position = Vector2(-5, -2)
rotation = 0.0135349 rotation = 0.0135349
scale = Vector2(1, 1) scale = Vector2(-1, 1)
[node name="head" type="Sprite2D" parent="CharacterBody2D/body"] [node name="head" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft"]
position = Vector2(45.8677, 58.5043) z_index = 1
rotation = 0.229125 y_sort_enabled = true
position = Vector2(46.9624, 76.1606)
rotation = 0.284615
scale = Vector2(1, 0.997) scale = Vector2(1, 0.997)
skew = 0.0245461 skew = 0.024546
texture = ExtResource("1_cgxhx") texture = ExtResource("1_cgxhx")
offset = Vector2(30.7251, -6.0665) offset = Vector2(25.2328, -23.0689)
region_enabled = true region_enabled = true
region_rect = Rect2(45, 24, 87, 82) region_rect = Rect2(45, 24, 87, 82)
[node name="beak upper" type="Sprite2D" parent="CharacterBody2D/body/head"] [node name="beak upper" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft/head"]
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
position = Vector2(64.9248, 6.88336) position = Vector2(50.669, -7.16257)
rotation = -0.0372987 rotation = -0.0427724
scale = Vector2(0.62715, 0.62715) scale = Vector2(0.62715, 0.62715)
texture = ExtResource("1_cgxhx") texture = ExtResource("1_cgxhx")
offset = Vector2(50, 0) offset = Vector2(57.1263, -7.47815)
region_enabled = true region_enabled = true
region_rect = Rect2(292, 37, 152, 98) region_rect = Rect2(292, 37, 152, 98)
[node name="beak lower" type="Sprite2D" parent="CharacterBody2D/body/head"] [node name="beak lower" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft/head"]
z_index = 1
y_sort_enabled = true y_sort_enabled = true
position = Vector2(63.0698, 25.5667) position = Vector2(47.9076, -15.7341)
rotation = 0.0418879 rotation = 0.0364142
scale = Vector2(0.58615, 0.58615) scale = Vector2(0.58615, 0.58615)
texture = ExtResource("1_cgxhx") texture = ExtResource("1_cgxhx")
offset = Vector2(50, 0) offset = Vector2(60.4601, 37.8134)
region_enabled = true region_enabled = true
region_rect = Rect2(295, 170, 145, 39) region_rect = Rect2(295, 170, 145, 39)
[node name="torso" type="Sprite2D" parent="CharacterBody2D/body"] [node name="torso" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft"]
position = Vector2(-3, 244) z_index = 1
y_sort_enabled = true
position = Vector2(5.90997, 355.352)
scale = Vector2(1.07526, 1.01724) scale = Vector2(1.07526, 1.01724)
texture = ExtResource("1_cgxhx") texture = ExtResource("1_cgxhx")
offset = Vector2(11.1601, -21.6271) offset = Vector2(2.87376, -131.092)
region_enabled = true region_enabled = true
region_rect = Rect2(30, 168, 125, 326) region_rect = Rect2(30, 168, 125, 326)
[node name="wingR" type="Sprite2D" parent="CharacterBody2D/body"] [node name="wingR" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft"]
z_index = 1
y_sort_enabled = true
position = Vector2(-28, 262) position = Vector2(-28, 262)
rotation = -0.371117 rotation = -0.371117
texture = ExtResource("1_cgxhx") texture = ExtResource("1_cgxhx")
@ -111,35 +296,42 @@ offset = Vector2(-50, 50)
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 180, 164) region_rect = Rect2(196, 231, 180, 164)
[node name="wingL" type="Sprite2D" parent="CharacterBody2D/body"] [node name="wingL" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft"]
z_index = 1
y_sort_enabled = true
position = Vector2(47.0695, 245.905) position = Vector2(47.0695, 245.905)
rotation = -0.0925884 rotation = -0.0925884
scale = Vector2(1.31536, 1.25948) scale = Vector2(1.31536, 1.25948)
skew = -0.0345085 skew = -0.0345086
texture = ExtResource("1_cgxhx") texture = ExtResource("1_cgxhx")
offset = Vector2(-59.5924, 55.37) offset = Vector2(-59.5924, 55.37)
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 180, 164) region_rect = Rect2(196, 231, 180, 164)
[node name="underbelly" type="Sprite2D" parent="CharacterBody2D/body"] [node name="underbelly" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft"]
position = Vector2(-17, 370) z_index = 1
rotation = -2.94251 y_sort_enabled = true
scale = Vector2(0.748, 1.565) position = Vector2(-11.4038, 439.203)
skew = 0.0226374 rotation = -2.98225
scale = Vector2(0.672245, 0.955267)
skew = 0.0185422
texture = ExtResource("1_cgxhx") texture = ExtResource("1_cgxhx")
offset = Vector2(26.4135, 70.6083)
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 180, 164) region_rect = Rect2(196, 231, 180, 164)
[node name="leg left" type="Sprite2D" parent="CharacterBody2D/body"] [node name="leg left" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft"]
position = Vector2(36.2887, 300.645) position = Vector2(36.2887, 300.645)
rotation = 2.42655 rotation = 2.42655
scale = Vector2(1.05221, 1.04106) scale = Vector2(1.05221, 1.04106)
skew = -0.0544099 skew = -0.0544101
texture = ExtResource("1_cgxhx") texture = ExtResource("1_cgxhx")
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 177, 161) region_rect = Rect2(196, 231, 177, 161)
[node name="left thigh" type="Sprite2D" parent="CharacterBody2D/body/leg left"] [node name="left thigh" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft/leg left"]
z_index = 1
y_sort_enabled = true
position = Vector2(73.353, -69.771) position = Vector2(73.353, -69.771)
rotation = -2.57238 rotation = -2.57238
scale = Vector2(0.651005, 0.688137) scale = Vector2(0.651005, 0.688137)
@ -147,7 +339,9 @@ texture = ExtResource("1_cgxhx")
region_enabled = true region_enabled = true
region_rect = Rect2(368, 263, 81, 89) region_rect = Rect2(368, 263, 81, 89)
[node name="left shin" type="Sprite2D" parent="CharacterBody2D/body/leg left/left thigh"] [node name="left shin" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft/leg left/left thigh"]
z_index = 1
y_sort_enabled = true
position = Vector2(-5.71882, 19.9984) position = Vector2(-5.71882, 19.9984)
rotation = 2.69159 rotation = 2.69159
scale = Vector2(0.88169, 0.852516) scale = Vector2(0.88169, 0.852516)
@ -157,7 +351,9 @@ offset = Vector2(10, -50)
region_enabled = true region_enabled = true
region_rect = Rect2(360, 361, 68, 126) region_rect = Rect2(360, 361, 68, 126)
[node name="left foot" type="Sprite2D" parent="CharacterBody2D/body/leg left/left thigh/left shin"] [node name="left foot" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft/leg left/left thigh/left shin"]
z_index = 1
y_sort_enabled = true
position = Vector2(15.1289, -77.6075) position = Vector2(15.1289, -77.6075)
rotation = -2.65268 rotation = -2.65268
scale = Vector2(1.12319, 1.12319) scale = Vector2(1.12319, 1.12319)
@ -166,7 +362,9 @@ offset = Vector2(40, 40)
region_enabled = true region_enabled = true
region_rect = Rect2(246, 393, 111, 111) region_rect = Rect2(246, 393, 111, 111)
[node name="right leg" type="Sprite2D" parent="CharacterBody2D/body"] [node name="right leg" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft"]
z_index = 1
y_sort_enabled = true
position = Vector2(-24, 364) position = Vector2(-24, 364)
rotation = -0.463741 rotation = -0.463741
scale = Vector2(1.07492, 1.01762) scale = Vector2(1.07492, 1.01762)
@ -174,7 +372,9 @@ texture = ExtResource("1_cgxhx")
region_enabled = true region_enabled = true
region_rect = Rect2(196, 231, 177, 161) region_rect = Rect2(196, 231, 177, 161)
[node name="right thigh" type="Sprite2D" parent="CharacterBody2D/body/right leg"] [node name="right thigh" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft/right leg"]
z_index = 1
y_sort_enabled = true
position = Vector2(-29.7603, 44.2374) position = Vector2(-29.7603, 44.2374)
rotation = 0.249342 rotation = 0.249342
scale = Vector2(0.625107, 0.655894) scale = Vector2(0.625107, 0.655894)
@ -183,7 +383,9 @@ texture = ExtResource("1_cgxhx")
region_enabled = true region_enabled = true
region_rect = Rect2(368, 263, 81, 89) region_rect = Rect2(368, 263, 81, 89)
[node name="right shin" type="Sprite2D" parent="CharacterBody2D/body/right leg/right thigh"] [node name="right shin" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft/right leg/right thigh"]
z_index = 1
y_sort_enabled = true
position = Vector2(-2.78734, 11.5692) position = Vector2(-2.78734, 11.5692)
rotation = 0.0689206 rotation = 0.0689206
scale = Vector2(1.12016, 1.07128) scale = Vector2(1.12016, 1.07128)
@ -193,7 +395,9 @@ offset = Vector2(-14.163, 37.0936)
region_enabled = true region_enabled = true
region_rect = Rect2(360, 361, 68, 126) region_rect = Rect2(360, 361, 68, 126)
[node name="right foot" type="Sprite2D" parent="CharacterBody2D/body/right leg/right thigh/right shin"] [node name="right foot" type="Sprite2D" parent="CharacterBody2D/bodyLookingLeft/right leg/right thigh/right shin"]
z_index = 1
y_sort_enabled = true
position = Vector2(-20.0986, 67.7507) position = Vector2(-20.0986, 67.7507)
rotation = 0.14855 rotation = 0.14855
scale = Vector2(1.212, 1.212) scale = Vector2(1.212, 1.212)

@ -2097,6 +2097,15 @@ collision_mask = 4
position = Vector2(1.75458, 76) position = Vector2(1.75458, 76)
shape = SubResource("RectangleShape2D_2vojv") shape = SubResource("RectangleShape2D_2vojv")
[node name="Duck2" parent="YSorted" node_paths=PackedStringArray("_vesna") instance=ExtResource("62_i36hd")]
z_index = 1
y_sort_enabled = true
position = Vector2(4374, 2652)
_vesna = NodePath("../Vesna/CharacterBody2D")
_runningSpeed = 2000.0
_slowSpeed = 1000.0
_minDistanceToVesna = 500.0
[node name="CanvasLayer" parent="." instance=ExtResource("32_2nee2")] [node name="CanvasLayer" parent="." instance=ExtResource("32_2nee2")]
[node name="Inventory" parent="CanvasLayer" index="1"] [node name="Inventory" parent="CanvasLayer" index="1"]
@ -2170,58 +2179,6 @@ max_distance = 2e+07
playback_type = 2 playback_type = 2
script = ExtResource("40_w3jkj") script = ExtResource("40_w3jkj")
[node name="Duck3" parent="." node_paths=PackedStringArray("_vesna") instance=ExtResource("62_i36hd")]
position = Vector2(1875, 2155)
_vesna = NodePath("../YSorted/Vesna/CharacterBody2D")
[node name="Duck4" parent="." node_paths=PackedStringArray("_vesna") instance=ExtResource("62_i36hd")]
position = Vector2(1496, 2816)
_vesna = NodePath("../YSorted/Vesna/CharacterBody2D")
[node name="Duck5" parent="." node_paths=PackedStringArray("_vesna") instance=ExtResource("62_i36hd")]
position = Vector2(4616, 2187)
_vesna = NodePath("../YSorted/Vesna/CharacterBody2D")
[node name="Duck6" parent="." node_paths=PackedStringArray("_vesna") instance=ExtResource("62_i36hd")]
position = Vector2(867, 2144)
_vesna = NodePath("../YSorted/Vesna/CharacterBody2D")
[node name="Duck7" parent="." node_paths=PackedStringArray("_vesna") instance=ExtResource("62_i36hd")]
position = Vector2(488, 2718)
_vesna = NodePath("../YSorted/Vesna/CharacterBody2D")
[node name="Duck10" parent="." node_paths=PackedStringArray("_vesna") instance=ExtResource("62_i36hd")]
position = Vector2(5201, 2708)
_vesna = NodePath("../YSorted/Vesna/CharacterBody2D")
[node name="Duck11" parent="." node_paths=PackedStringArray("_vesna") instance=ExtResource("62_i36hd")]
position = Vector2(1235, 2458)
_vesna = NodePath("../YSorted/Vesna/CharacterBody2D")
[node name="Duck12" parent="." node_paths=PackedStringArray("_vesna") instance=ExtResource("62_i36hd")]
position = Vector2(2146, 2794)
_vesna = NodePath("../YSorted/Vesna/CharacterBody2D")
[node name="Duck13" parent="." node_paths=PackedStringArray("_vesna") instance=ExtResource("62_i36hd")]
position = Vector2(3587, 3119)
_vesna = NodePath("../YSorted/Vesna/CharacterBody2D")
[node name="Duck14" parent="." node_paths=PackedStringArray("_vesna") instance=ExtResource("62_i36hd")]
position = Vector2(4757, 2686)
_vesna = NodePath("../YSorted/Vesna/CharacterBody2D")
[node name="Duck15" parent="." node_paths=PackedStringArray("_vesna") instance=ExtResource("62_i36hd")]
position = Vector2(4908, 3206)
_vesna = NodePath("../YSorted/Vesna/CharacterBody2D")
[node name="Duck" parent="." node_paths=PackedStringArray("_vesna") instance=ExtResource("62_i36hd")]
position = Vector2(2517, 2417)
_vesna = NodePath("../YSorted/Vesna/CharacterBody2D")
[node name="Duck2" parent="." node_paths=PackedStringArray("_vesna") instance=ExtResource("62_i36hd")]
position = Vector2(3540, 2518)
_vesna = NodePath("../YSorted/Vesna/CharacterBody2D")
[node name="PenCollider" type="Area2D" parent="."] [node name="PenCollider" type="Area2D" parent="."]
script = ExtResource("63_uxa2m") script = ExtResource("63_uxa2m")

@ -1,4 +1,3 @@
using System;
using Godot; using Godot;
namespace Babushka.scripts.CSharp.Common.Animation; namespace Babushka.scripts.CSharp.Common.Animation;
@ -9,15 +8,18 @@ public partial class Duck : Node2D
[Export] private AudioPlayer _nakNakAudio; [Export] private AudioPlayer _nakNakAudio;
[Export] private AudioPlayer _wingFlapAudio; [Export] private AudioPlayer _wingFlapAudio;
[Export] private Node2D _vesna; [Export] private Node2D _vesna;
[Export] private float _runningSpeed = 5f; [Export] private float _runningSpeed = 3f;
[Export] private float _slowSpeed = 1f; [Export] private float _slowSpeed = 0.5f;
[Export] private float _minDistanceToVesna = 1000f; [Export] private float _minDistanceToVesna = 1000f;
[Export] private Node2D _duckRight;
[Export] private Node2D _duckLeft;
private bool _vesnaInReach = false; private bool _vesnaInReach = false;
private bool _penEntered = false; private bool _penEntered = false;
private Vector2 _lastDirection = Vector2.Up;
private int _numberOfFramesPerDirection = 1000; private int _numberOfFramesPerDirection = 1000;
private int _currentFramesThisDirection = 0; private int _currentFramesThisDirection = 0;
private bool _duckLookingRight = true;
private Vector2 _movementVector = Vector2.Zero;
public void PenEntered() public void PenEntered()
@ -26,6 +28,11 @@ public partial class Duck : Node2D
_penEntered = true; _penEntered = true;
} }
public override void _Draw()
{
DrawLine(_characterBody.GlobalPosition, _movementVector, new Color(255, 0, 0), 2f, false);
}
public override void _Process(double delta) public override void _Process(double delta)
{ {
if (_penEntered) if (_penEntered)
@ -40,33 +47,42 @@ public partial class Duck : Node2D
if (currentDistance < _minDistanceToVesna) if (currentDistance < _minDistanceToVesna)
{ {
_characterBody.Velocity = new Vector2( _characterBody.GlobalPosition.X - _vesna.GlobalPosition.X, _movementVector = new Vector2( _characterBody.GlobalPosition.X - _vesna.GlobalPosition.X,
_characterBody.GlobalPosition.Y - _vesna.GlobalPosition.Y).Normalized(); _characterBody.GlobalPosition.Y - _vesna.GlobalPosition.Y).Normalized();
_characterBody.Velocity *= _runningSpeed; _movementVector *= _runningSpeed;
_characterBody.Velocity = _movementVector;
_characterBody.MoveAndSlide(); _characterBody.MoveAndSlide();
// todo: Add noise!
} }
else else
{ {
if (_currentFramesThisDirection >= _numberOfFramesPerDirection) if (_currentFramesThisDirection >= _numberOfFramesPerDirection)
{ {
_currentFramesThisDirection = 0; _currentFramesThisDirection = 0;
Random random = new Random(); FastNoiseLite fastNoiseLite = new FastNoiseLite();
_lastDirection = new Vector2(random.NextSingle(), random.NextSingle()).Normalized(); _movementVector = new Vector2(fastNoiseLite.GetNoise1D(_characterBody.GlobalPosition.X * Time.GetTicksMsec()), fastNoiseLite.GetNoise1D(_characterBody.GlobalPosition.Y * Time.GetTicksMsec())).Normalized();
} }
_currentFramesThisDirection++; _currentFramesThisDirection++;
_characterBody.Velocity = _lastDirection * _slowSpeed; _characterBody.Velocity = _movementVector * _slowSpeed;
_characterBody.MoveAndSlide(); _characterBody.MoveAndSlide();
} }
/* // if läuftNachLinks && schautNachRechts || läuftNachRechts && schautNachLinks
if (_characterBody.Velocity.X < 0 && _characterBody.Scale.X > 0) if ((_characterBody.Velocity.X < 0 && _duckLookingRight)
|| (_characterBody.Velocity.X > 0 && !_duckLookingRight))
{ {
_characterBody.Scale = new Vector2(_characterBody.Scale.X * (-1), _characterBody.Scale.Y); if (_duckLookingRight)
{
_duckRight.Visible = false;
_duckLeft.Visible = true;
_duckLookingRight = false;
}
else
{
_duckRight.Visible = true;
_duckLeft.Visible = false;
_duckLookingRight = true;
}
} }
*/
base._Process(delta);
} }
} }
Loading…
Cancel
Save