Author SHA1 Message Date
qwsdcvghyu89 562d0da079 Added more grassy tile variants
Release / Export Game (push) Successful in 1m43s
2026-06-15 07:51:19 +10:00
qwsdcvghyu89 6b9bb6da5a Audio additions: jump.ogg - comitting to continue development in another environment.
Release / Export Game (push) Successful in 2m0s
2026-06-15 00:07:56 +10:00
14 changed files with 1439 additions and 27 deletions
-7
View File
@@ -1,7 +0,0 @@
{
"sdk": {
"version": "11.0.100-preview.5.26302.115",
"allowPrerelease": true,
"rollForward": "latestPatch"
}
}
+21 -6
View File
@@ -17,6 +17,8 @@
[ext_resource type="AudioStream" uid="uid://fhfma3rrxyfi" path="res://sounds/ost/Asphodel.wav" id="10_8w1nl"]
[ext_resource type="AudioStream" uid="uid://0tturucf5gxf" path="res://sounds/ost/Datura.wav" id="11_q0lvb"]
[ext_resource type="AudioStream" uid="uid://b5cvbx3ypbbho" path="res://sounds/ost/Hyacinth.wav" id="12_7psk8"]
[ext_resource type="Script" uid="uid://bwgqvwybyrsmq" path="res://src/components/SfxPlayer.gd" id="14_8hos5"]
[ext_resource type="AudioStream" uid="uid://dkx1v6c7vv0iq" path="res://sounds/sfx/jump.ogg" id="15_2fy34"]
[ext_resource type="PackedScene" uid="uid://xanv3qbl1n2u" path="res://objects/scenes/asset/light.tscn" id="18_kfvst"]
[sub_resource type="Curve" id="Curve_o8yf1"]
@@ -48,11 +50,12 @@ tile_map_data = PackedByteArray("AAAAAAIAAAACAAMAAAABAAIAAAACAAMAAgACAAIAAAACAAM
tile_set = ExtResource("1_7psk8")
[node name="Foreground" type="Node2D" parent="Level" unique_id=1677976972]
z_index = 1
[node name="TileMapLayer" type="TileMapLayer" parent="Level/Foreground" unique_id=419267781]
light_mask = 4
texture_filter = 1
tile_map_data = PackedByteArray("AAAWAPz/AAALAAIAAAAXAPz/AAALAAIAAAAYAPz/AAALAAMAAAAZAPr/AAALAAIAAAAOAAYAAAALAAIAAAAPAAYAAAALAAIAAAAQAAYAAAALAAIAAAARAAYAAAALAAIAAAASAAYAAAALAAIAAAATAAYAAAALAAIAAAAWAAYAAAALAAIAAAAXAAYAAAALAAIAAAAYAAYAAAALAAIAAAAZAAYAAAALAAIAAAAaAAYAAAALAAIAAAAdAAYAAAALAAIAAAAeAAYAAAALAAIAAAAfAAYAAAALAAIAAAAgAAYAAAALAAIAAAAOAAUAAAAMAAEAAAAPAAUAAAALAAEAAAAQAAUAAAAMAAEAAAARAAUAAAAMAAEAAAASAAUAAAAKAAEAAAATAAUAAAALAAEAAAAXAAUAAAAMAAEAAAAYAAUAAAAMAAEAAAAZAAUAAAAKAAEAAAAaAAUAAAAMAAEAAAAdAAUAAAAKAAEAAAAeAAUAAAAKAAEAAAAfAAUAAAALAAEAAAAgAAUAAAAMAAEAAAAWAAUAAAAMAAEAAAAWAPv/AAAKAAEAAAAXAPv/AAAKAAEAAAA=")
tile_map_data = PackedByteArray("AAAWAPz/AAAOAAIAAAAXAPz/AAALAAIAAAAYAPz/AAALAAcAAAAZAPr/AAALAAIAAAAOAAYAAAAOAAIAAAAPAAYAAAALAAIAAAAQAAYAAAALAAIAAAARAAYAAAALAAIAAAASAAYAAAALAAIAAAATAAYAAAAPAAIAAAAWAAYAAAAOAAIAAAAXAAYAAAALAAIAAAAYAAYAAAALAAIAAAAZAAYAAAALAAIAAAAaAAYAAAAPAAIAAAAdAAYAAAAOAAIAAAAeAAYAAAALAAIAAAAfAAYAAAALAAIAAAAgAAYAAAALAAIAAAAOAAUAAAAOAAEAAAAPAAUAAAALAAEAAAAQAAUAAAAMAAEAAAARAAUAAAAMAAEAAAAXAAUAAAAMAAEAAAAYAAUAAAAMAAEAAAAZAAUAAAAKAAEAAAAaAAUAAAAPAAEAAAAdAAUAAAAOAAEAAAAeAAUAAAAKAAEAAAAfAAUAAAALAAEAAAAgAAUAAAAIAAUAAAAWAAUAAAAOAAEAAAAWAPv/AAAOAAEAAAAXAPv/AAAIAAUAAAATAAUAAAAPAAEAAAASAAUAAAAKAAEAAAAhAAYAAAALAAcAAAAhAAUAAAAKAAMAAAAgAAQAAAAJAAMAAAAhAAQAAAAKAAMAAAAgAAMAAAAJAAIAAAAhAAMAAAAKAAMAAAAhAAIAAAANAAYAAAAgAAIAAAAMAAYAAAAdAP3/AAAMAAQAAAAcAP3/AAALAAQAAAAbAP3/AAALAAQAAAAdAPz/AAAMAAMAAAAdAPv/AAAMAAMAAAAdAPr/AAAMAAMAAAAdAPn/AAAMAAMAAAAdAPj/AAAOAAYAAAAaAP3/AAAOAAMAAAAaAP7/AAAOAAQAAAAeAPj/AAAPAAYAAAAeAPn/AAANAAQAAAAeAPr/AAANAAMAAAAeAPv/AAANAAQAAAAeAPz/AAANAAMAAAAeAP3/AAANAAQAAAAbAP7/AAALAAUAAAAcAP7/AAAKAAUAAAAdAP7/AAAMAAUAAAAaAPn/AAAKAAMAAAAaAPr/AAALAAcAAAAYAPn/AAAOAAEAAAAYAPr/AAAOAAIAAAAZAPj/AAAMAAYAAAAaAPj/AAANAAYAAAAZAPn/AAAIAAUAAAAYAPv/AAANAAYAAAAMAAAAAAAMAAMAAAAMAP//AAAMAAMAAAAMAP7/AAAMAAMAAAAMAP3/AAAMAAMAAAAMAPz/AAAMAAMAAAAMAPv/AAAMAAMAAAAhAOv/AAAKAAMAAAAhAOz/AAAKAAMAAAAhAO3/AAAKAAMAAAAhAO7/AAAKAAMAAAAhAO//AAAKAAMAAAAhAPD/AAAKAAMAAAAhAPH/AAAKAAMAAAAhAPL/AAAKAAMAAAAhAPP/AAAKAAMAAAAhAPT/AAAKAAMAAAAgAOv/AAAJAAQAAAAgAOz/AAAJAAQAAAAgAO3/AAAJAAIAAAAgAO7/AAAJAAIAAAAgAO//AAAJAAQAAAAgAPD/AAAJAAQAAAAgAPH/AAAJAAIAAAAgAPL/AAAJAAQAAAAgAPP/AAAJAAIAAAAgAPT/AAAJAAQAAAAgAPX/AAAMAAcAAAAhAPX/AAANAAcAAAAgAOr/AAAMAAYAAAAhAOr/AAANAAYAAAAMAAEAAAAOAAcAAAANAAEAAAAPAAcAAAAMAPr/AAAOAAYAAAANAPr/AAAPAAYAAAANAPv/AAANAAQAAAANAPz/AAANAAIAAAANAP3/AAANAAMAAAANAP7/AAANAAQAAAANAP//AAANAAIAAAANAAAAAAANAAMAAAAQANv/AAAKAAMAAAAQANz/AAAKAAMAAAAQAN3/AAAKAAMAAAAQAN7/AAAKAAMAAAAQAN//AAAKAAMAAAAQAOD/AAAKAAMAAAAQAOH/AAAKAAMAAAAQAOL/AAAKAAMAAAAQAOP/AAAKAAMAAAAQAOT/AAAKAAMAAAAQAOX/AAAKAAMAAAAQAOb/AAAKAAQAAAARAOb/AAAPAAMAAAARAOf/AAAPAAQAAAAQANn/AAAIAAUAAAARANn/AAANAAYAAAAQANr/AAAKAAIAAAARANr/AAALAAcAAAAPANr/AAAJAAQAAAAPANv/AAAJAAIAAAAPANz/AAAJAAQAAAAPAN3/AAAJAAMAAAAPAN7/AAAJAAIAAAAPAN//AAAJAAIAAAAPAOD/AAAJAAIAAAAPAOH/AAAJAAIAAAAPAOL/AAAJAAIAAAAPAOP/AAAJAAMAAAAPAOT/AAAJAAQAAAAPAOX/AAAJAAIAAAAPAOb/AAAMAAcAAAAQAOf/AAAOAAQAAAAMAOD/AAAMAAMAAAAMAN//AAAMAAMAAAAMAN7/AAAMAAMAAAAMAN3/AAAMAAMAAAAMANz/AAAMAAMAAAAMANv/AAAMAAMAAAAMANr/AAAMAAIAAAAMAOr/AAAMAAMAAAAMAOn/AAAMAAMAAAAMAOj/AAAMAAMAAAAMAOf/AAAOAAYAAAANAOf/AAAPAAYAAAAMAOv/AAAOAAcAAAANAOv/AAAPAAcAAAAMAOH/AAAOAAcAAAANAOH/AAAPAAcAAAALANf/AAAOAAYAAAAMANf/AAAPAAYAAAALANj/AAAMAAMAAAALANn/AAAMAAMAAAALANr/AAAKAAcAAAAMANj/AAANAAMAAAAMANn/AAAJAAUAAAANANr/AAANAAQAAAANANv/AAANAAQAAAANANz/AAANAAMAAAANAN3/AAANAAIAAAANAN7/AAANAAIAAAANAN//AAANAAQAAAANAOD/AAANAAQAAAANAOj/AAANAAIAAAANAOn/AAANAAMAAAANAOr/AAANAAIAAAAhAOX/AAAKAAMAAAAhAOT/AAAKAAMAAAAhAOP/AAAKAAMAAAAhAOL/AAAKAAMAAAAhAOH/AAAKAAMAAAAhAOD/AAAKAAMAAAAhAN//AAAKAAMAAAAgAN//AAAIAAYAAAAgAN3/AAAIAAUAAAAhAN3/AAAKAAMAAAAhANz/AAAKAAMAAAAhANv/AAAKAAMAAAAhAN7/AAAKAAMAAAAfAOT/AAAJAAYAAAAfAOL/AAAJAAUAAAAeAOX/AAAMAAMAAAAeAOT/AAAMAAMAAAAeAOP/AAAMAAMAAAAeAOL/AAAMAAMAAAAeAOH/AAAMAAMAAAAeAOD/AAAMAAMAAAAeAN//AAAMAAMAAAAeAN7/AAAMAAMAAAAeAN3/AAAMAAMAAAAeANz/AAAMAAMAAAAeANv/AAAMAAMAAAAeANr/AAAMAAIAAAAdANr/AAALAAIAAAAcANr/AAALAAIAAAAbANn/AAAOAAEAAAAbANr/AAAOAAIAAAAgANr/AAAMAAYAAAAhANr/AAANAAYAAAAgAOb/AAAMAAcAAAAhAOb/AAANAAcAAAAeAOb/AAAMAAQAAAAdAOb/AAALAAQAAAAcAOb/AAALAAQAAAAbAOb/AAALAAQAAAAaAOb/AAAOAAMAAAAaAOf/AAAOAAQAAAAbAOf/AAAMAAUAAAAcAOf/AAAKAAUAAAAdAOf/AAAKAAUAAAAeAOf/AAAMAAUAAAAfAOb/AAANAAMAAAAfAOX/AAANAAIAAAAfAOH/AAANAAQAAAAfAOD/AAANAAMAAAAfAN//AAANAAMAAAAfAN7/AAANAAMAAAAfAN3/AAANAAMAAAAfANz/AAANAAMAAAAfANv/AAANAAQAAAAfANr/AAANAAMAAAAcANn/AAAMAAEAAAAdANn/AAAMAAEAAAAeANn/AAAMAAEAAAAgANv/AAAJAAIAAAAgANz/AAAJAAQAAAAgAOD/AAAJAAIAAAAgAOH/AAAJAAMAAAAgAOL/AAAJAAMAAAAgAOP/AAAJAAQAAAAgAOT/AAAJAAQAAAAgAOX/AAAJAAQAAAA=")
tile_set = ExtResource("1_7psk8")
occlusion_enabled = false
@@ -217,7 +220,7 @@ script = ExtResource("2_oekxy")
WalkAcceleration = 30.0
StoppingDeceleration = 50.0
CancellationAcceleration = 50.0
AirAcceleration = 3.0
AirAcceleration = 9.0
MaxFallSpeed = 50.0
MaxRiseSpeed = 50.0
MaxRunSpeed = 12.0
@@ -238,7 +241,7 @@ sprite_frames = ExtResource("2_wq5k4")
animation = &"walk"
[node name="Camera2D" type="Camera2D" parent="Player/CharacterBody2D" unique_id=1068565115]
zoom = Vector2(2, 2)
zoom = Vector2(5, 5)
[node name="Label" type="Label" parent="Player/CharacterBody2D" unique_id=436935745]
offset_left = 22.0
@@ -293,13 +296,21 @@ max_results = 1
collide_with_areas = true
[node name="Light" parent="Player/CharacterBody2D" unique_id=658403720 instance=ExtResource("18_kfvst")]
scale = Vector2(0.5, 0.5)
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1465666014]
environment = ExtResource("2_44w6l")
camera_attributes = ExtResource("3_wq5k4")
compositor = ExtResource("4_oekxy")
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="." unique_id=2110631703]
[node name="Sfx" type="AudioStreamPlayer" parent="." unique_id=253749605]
volume_db = -9.72
script = ExtResource("14_8hos5")
ground_jump = Array[AudioStream]([ExtResource("15_2fy34")])
midair_jump = Array[AudioStream]([ExtResource("15_2fy34")])
turnback_jump = Array[AudioStream]([ExtResource("15_2fy34")])
[node name="Music" type="AudioStreamPlayer" parent="." unique_id=2110631703]
stream = ExtResource("8_irpq7")
volume_db = -25.544
autoplay = true
@@ -319,17 +330,21 @@ show_percentage = false
[node name="Light" parent="." unique_id=1954424812 instance=ExtResource("18_kfvst")]
position = Vector2(690, -499)
scale = Vector2(3.105, 3.106753)
[node name="Light2" parent="." unique_id=867314630 instance=ExtResource("18_kfvst")]
position = Vector2(456, -1008)
[node name="Light3" parent="." unique_id=71903995 instance=ExtResource("18_kfvst")]
visible = false
position = Vector2(1009, -971)
[node name="Light4" parent="." unique_id=779029523 instance=ExtResource("18_kfvst")]
position = Vector2(532, 169.99998)
position = Vector2(529, 173)
scale = Vector2(1.2247605, 1.2247605)
[connection signal="finished" from="AudioStreamPlayer" to="AudioStreamPlayer" method="_on_finished"]
[connection signal="OnJump" from="Player/CharacterBody2D" to="Sfx" method="_on_character_body_2d_on_jump"]
[connection signal="finished" from="Music" to="Music" method="_on_finished"]
[editable path="Player/CharacterBody2D/Light"]
[editable path="Light"]
-1
View File
@@ -11,7 +11,6 @@ config_version=5
[application]
config/name="WrplatGodot"
config/version="0.1.38"
run/main_scene="uid://r2lb1ommvj6u"
config/features=PackedStringArray("4.6", "C#", "Forward Plus")
config/icon="res://icon.svg"
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://dkx1v6c7vv0iq"
path="res://.godot/imported/jump.ogg-d217a70c8ca2fe077e37d9f442c771d3.oggvorbisstr"
[deps]
source_file="res://sounds/sfx/jump.ogg"
dest_files=["res://.godot/imported/jump.ogg-d217a70c8ca2fe077e37d9f442c771d3.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 42 KiB

File diff suppressed because it is too large Load Diff
+206 -1
View File
@@ -122,8 +122,24 @@ texture_region_size = Vector2i(32, 32)
7:1/0 = 0
8:1/0 = 0
9:1/0 = 0
9:1/0/terrain_set = 0
9:1/0/terrain = 2
9:1/0/terrains_peering_bit/right_side = 2
9:1/0/terrains_peering_bit/bottom_right_corner = 1
9:1/0/terrains_peering_bit/bottom_side = 2
10:1/next_alternative_id = 2
10:1/0 = 0
10:1/0/terrain_set = 0
10:1/0/terrain = 2
10:1/0/terrains_peering_bit/right_side = 2
10:1/0/terrains_peering_bit/bottom_side = 1
10:1/0/terrains_peering_bit/left_side = 2
11:1/0 = 0
11:1/0/terrain_set = 0
11:1/0/terrain = 2
11:1/0/terrains_peering_bit/right_side = 2
11:1/0/terrains_peering_bit/bottom_side = 1
11:1/0/terrains_peering_bit/left_side = 2
0:2/0 = 0
1:2/0 = 0
1:2/0/terrain_set = 0
@@ -195,13 +211,21 @@ texture_region_size = Vector2i(32, 32)
8:2/0 = 0
8:2/0/occlusion_layer_0/polygon_0/polygon = SubResource("OccluderPolygon2D_yfu7p")
8:2/0/occlusion_layer_1/polygon_0/polygon = SubResource("OccluderPolygon2D_xwwfl")
9:2/next_alternative_id = 2
9:2/0 = 0
9:2/0/terrain_set = 0
9:2/0/terrain = 2
9:2/0/terrains_peering_bit/right_side = 1
9:2/0/terrains_peering_bit/bottom_side = 2
9:2/0/terrains_peering_bit/top_side = 2
10:2/next_alternative_id = 2
10:2/0 = 0
10:2/0/terrain_set = 0
10:2/0/terrain = 1
10:2/0/terrains_peering_bit/right_side = 1
10:2/0/terrains_peering_bit/bottom_right_corner = 1
10:2/0/terrains_peering_bit/bottom_side = 1
11:2/next_alternative_id = 11
11:2/0 = 0
11:2/0/terrain_set = 0
11:2/0/terrain = 1
@@ -371,6 +395,12 @@ texture_region_size = Vector2i(32, 32)
7:3/0/terrains_peering_bit/top_right_corner = 0
8:3/0 = 0
9:3/0 = 0
9:3/0/terrain_set = 0
9:3/0/terrain = 2
9:3/0/terrains_peering_bit/right_side = 1
9:3/0/terrains_peering_bit/bottom_side = 2
9:3/0/terrains_peering_bit/top_side = 2
10:3/next_alternative_id = 10
10:3/0 = 0
10:3/0/terrain_set = 0
10:3/0/terrain = 1
@@ -470,22 +500,48 @@ texture_region_size = Vector2i(32, 32)
5:4/0/occlusion_layer_1/polygon_0/polygon = SubResource("OccluderPolygon2D_o2foe")
5:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -16, 16, 16, 16, 16, -16)
8:4/0 = 0
9:4/next_alternative_id = 2
9:4/0 = 0
9:4/0/terrain_set = 0
9:4/0/terrain = 2
9:4/0/terrains_peering_bit/right_side = 1
9:4/0/terrains_peering_bit/bottom_side = 2
9:4/0/terrains_peering_bit/top_side = 2
10:4/next_alternative_id = 2
10:4/0 = 0
10:4/0/terrain_set = 0
10:4/0/terrain = 1
10:4/0/terrains_peering_bit/right_side = 1
10:4/0/terrains_peering_bit/top_side = 1
10:4/0/terrains_peering_bit/top_right_corner = 1
12:1/next_alternative_id = 2
12:1/0 = 0
12:1/0/terrain_set = 0
12:1/0/terrain = 2
12:1/0/terrains_peering_bit/right_side = 2
12:1/0/terrains_peering_bit/bottom_side = 1
12:1/0/terrains_peering_bit/left_side = 2
13:1/0 = 0
13:1/0/terrain_set = 0
13:1/0/terrain = 2
13:1/0/terrains_peering_bit/bottom_side = 2
13:1/0/terrains_peering_bit/bottom_left_corner = 1
13:1/0/terrains_peering_bit/left_side = 2
12:2/next_alternative_id = 2
12:2/0 = 0
12:2/0/terrain_set = 0
12:2/0/terrain = 1
12:2/0/terrains_peering_bit/bottom_side = 1
12:2/0/terrains_peering_bit/bottom_left_corner = 1
12:2/0/terrains_peering_bit/left_side = 1
13:2/next_alternative_id = 2
13:2/0 = 0
13:2/0/terrain_set = 0
13:2/0/terrain = 2
13:2/0/terrains_peering_bit/bottom_side = 2
13:2/0/terrains_peering_bit/left_side = 1
13:2/0/terrains_peering_bit/top_side = 2
12:3/next_alternative_id = 10
12:3/0 = 0
12:3/0/terrain_set = 0
12:3/0/terrain = 1
@@ -495,6 +551,12 @@ texture_region_size = Vector2i(32, 32)
12:3/0/terrains_peering_bit/top_left_corner = 1
12:3/0/terrains_peering_bit/top_side = 1
13:3/0 = 0
13:3/0/terrain_set = 0
13:3/0/terrain = 2
13:3/0/terrains_peering_bit/bottom_side = 2
13:3/0/terrains_peering_bit/left_side = 1
13:3/0/terrains_peering_bit/top_side = 2
11:4/next_alternative_id = 10
11:4/0 = 0
11:4/0/terrain_set = 0
11:4/0/terrain = 1
@@ -503,17 +565,154 @@ texture_region_size = Vector2i(32, 32)
11:4/0/terrains_peering_bit/top_left_corner = 1
11:4/0/terrains_peering_bit/top_side = 1
11:4/0/terrains_peering_bit/top_right_corner = 1
12:4/next_alternative_id = 2
12:4/0 = 0
12:4/0/terrain_set = 0
12:4/0/terrain = 1
12:4/0/terrains_peering_bit/left_side = 1
12:4/0/terrains_peering_bit/top_left_corner = 1
12:4/0/terrains_peering_bit/top_side = 1
13:4/next_alternative_id = 2
13:4/0 = 0
13:4/0/terrain_set = 0
13:4/0/terrain = 2
13:4/0/terrains_peering_bit/bottom_side = 2
13:4/0/terrains_peering_bit/left_side = 1
13:4/0/terrains_peering_bit/top_side = 2
10:5/next_alternative_id = 2
10:5/0 = 0
10:5/0/terrain_set = 0
10:5/0/terrain = 2
10:5/0/terrains_peering_bit/right_side = 2
10:5/0/terrains_peering_bit/left_side = 2
10:5/0/terrains_peering_bit/top_side = 1
11:5/0 = 0
11:5/0/terrain_set = 0
11:5/0/terrain = 2
11:5/0/terrains_peering_bit/right_side = 2
11:5/0/terrains_peering_bit/left_side = 2
11:5/0/terrains_peering_bit/top_side = 1
12:5/next_alternative_id = 2
12:5/0 = 0
12:5/0/terrain_set = 0
12:5/0/terrain = 2
12:5/0/terrains_peering_bit/right_side = 2
12:5/0/terrains_peering_bit/left_side = 2
12:5/0/terrains_peering_bit/top_side = 1
13:5/0 = 0
13:5/0/terrain_set = 0
13:5/0/terrain = 2
13:5/0/terrains_peering_bit/left_side = 2
13:5/0/terrains_peering_bit/top_left_corner = 1
13:5/0/terrains_peering_bit/top_side = 2
9:5/0 = 0
9:5/0/terrain_set = 0
9:5/0/terrain = 2
9:5/0/terrains_peering_bit/right_side = 2
9:5/0/terrains_peering_bit/bottom_left_corner = 1
9:5/0/terrains_peering_bit/top_side = 2
8:5/0 = 0
8:5/0/terrain_set = 0
8:5/0/terrain = 2
8:5/0/terrains_peering_bit/bottom_right_corner = 1
8:5/0/terrains_peering_bit/left_side = 2
8:5/0/terrains_peering_bit/top_side = 2
8:6/0 = 0
8:6/0/terrain_set = 0
8:6/0/terrain = 2
8:6/0/terrains_peering_bit/bottom_side = 2
8:6/0/terrains_peering_bit/left_side = 2
8:6/0/terrains_peering_bit/top_right_corner = 1
9:6/0 = 0
9:6/0/terrain_set = 0
9:6/0/terrain = 2
9:6/0/terrains_peering_bit/right_side = 2
9:6/0/terrains_peering_bit/bottom_side = 2
9:6/0/terrains_peering_bit/top_left_corner = 1
10:6/0 = 0
10:6/0/terrain_set = 0
10:6/0/terrain = 1
10:6/0/terrains_peering_bit/right_side = 1
10:6/0/terrains_peering_bit/bottom_side = 1
10:6/0/terrains_peering_bit/bottom_left_corner = 1
10:6/0/terrains_peering_bit/left_side = 1
10:6/0/terrains_peering_bit/top_left_corner = 1
10:6/0/terrains_peering_bit/top_side = 1
10:6/0/terrains_peering_bit/top_right_corner = 1
10:7/0 = 0
10:7/0/terrain_set = 0
10:7/0/terrain = 1
10:7/0/terrains_peering_bit/right_side = 1
10:7/0/terrains_peering_bit/bottom_right_corner = 1
10:7/0/terrains_peering_bit/bottom_side = 1
10:7/0/terrains_peering_bit/bottom_left_corner = 1
10:7/0/terrains_peering_bit/left_side = 1
10:7/0/terrains_peering_bit/top_left_corner = 1
10:7/0/terrains_peering_bit/top_side = 1
11:7/0 = 0
11:7/0/terrain_set = 0
11:7/0/terrain = 1
11:7/0/terrains_peering_bit/right_side = 1
11:7/0/terrains_peering_bit/bottom_right_corner = 1
11:7/0/terrains_peering_bit/bottom_side = 1
11:7/0/terrains_peering_bit/bottom_left_corner = 1
11:7/0/terrains_peering_bit/left_side = 1
11:7/0/terrains_peering_bit/top_side = 1
11:7/0/terrains_peering_bit/top_right_corner = 1
12:7/0 = 0
12:7/0/terrain_set = 0
12:6/0 = 0
12:6/0/terrain_set = 0
11:6/0 = 0
11:6/0/terrain_set = 0
11:6/0/terrain = 1
11:6/0/terrains_peering_bit/right_side = 1
11:6/0/terrains_peering_bit/bottom_right_corner = 1
11:6/0/terrains_peering_bit/bottom_side = 1
11:6/0/terrains_peering_bit/left_side = 1
11:6/0/terrains_peering_bit/top_left_corner = 1
11:6/0/terrains_peering_bit/top_side = 1
11:6/0/terrains_peering_bit/top_right_corner = 1
13:6/0 = 0
13:6/0/terrain_set = 0
14:6/0 = 0
14:6/0/terrain_set = 0
14:7/0 = 0
14:7/0/terrain_set = 0
13:7/0 = 0
13:7/0/terrain_set = 0
15:6/0 = 0
15:6/0/terrain_set = 0
15:7/0 = 0
15:7/0/terrain_set = 0
14:5/0 = 0
14:5/0/terrain_set = 0
14:5/0/terrain = 2
14:5/0/terrains_peering_bit/right_side = 2
14:5/0/terrains_peering_bit/top_side = 2
14:5/0/terrains_peering_bit/top_right_corner = 1
14:4/0 = 0
14:4/0/terrain_set = 0
14:3/0 = 0
14:3/0/terrain_set = 0
14:2/0 = 0
14:2/0/terrain_set = 0
14:1/0 = 0
14:1/0/terrain_set = 0
14:0/0 = 0
15:1/0 = 0
15:1/0/terrain_set = 0
15:2/0 = 0
15:2/0/terrain_set = 0
15:3/0 = 0
15:3/0/terrain_set = 0
15:4/0 = 0
15:4/0/terrain_set = 0
15:5/0 = 0
15:5/0/terrain_set = 0
15:0/0 = 0
13:0/0 = 0
12:0/0 = 0
[resource]
tile_size = Vector2i(32, 32)
@@ -524,5 +723,11 @@ terrain_set_0/mode = 0
terrain_set_0/terrain_0/name = "Brick"
terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1)
terrain_set_0/terrain_1/name = "Forested"
terrain_set_0/terrain_1/color = Color(0.39864206, 0.682954, 0.06894464, 1)
terrain_set_0/terrain_1/color = Color(0.48, 0.2712, 0.062399995, 1)
terrain_set_0/terrain_2/name = "Grass"
terrain_set_0/terrain_2/color = Color(0.5769167, 0.86, 0.18059999, 1)
terrain_set_0/terrain_3/name = "Forested-Grass Junction"
terrain_set_0/terrain_3/color = Color(0.255, 0.51, 0.39525005, 1)
terrain_set_0/terrain_4/name = "Terminato Junction"
terrain_set_0/terrain_4/color = Color(0.25, 0.3416667, 0.5, 1)
sources/0 = SubResource("TileSetAtlasSource_blkrv")
+25 -11
View File
@@ -4,6 +4,12 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
public enum JumpKind {
Ground,
Turnback,
Midair
}
public partial class PlayerPhysicsController : CharacterBody2D {
// [Export]
// public float RunMultiplier { get; set; } = 1.84f;
@@ -11,6 +17,10 @@ public partial class PlayerPhysicsController : CharacterBody2D {
[Signal]
public delegate void OnTurnbackJumpEventHandler(bool onJumpPoint, bool isOnWall);
[Signal]
public delegate void OnJumpEventHandler(JumpKind kind, bool isOnGround, bool isOnWall);
[ExportCategory("Accelerations and Impulses")]
[Export]
public float WalkAcceleration { get; set; } = 3f;
@@ -35,10 +45,6 @@ public partial class PlayerPhysicsController : CharacterBody2D {
private float MaxRunSpeed { get; set; } = 16f;
[Export]
private float MaxWalkSpeed { get; set; } = 8f;
[Export]
private float MaxAirSpeed { get; set; } = 16f;
[Export]
private float MaxDoubleJumpFallSpeed { get; set; } = 1f;
[ExportCategory("Objects")]
[Export]
@@ -69,7 +75,7 @@ public partial class PlayerPhysicsController : CharacterBody2D {
[Export]
public float Deadzone { get; set; } = 0.1f;
public float GetMinAccel(float delta) => CancellationAcceleration * delta;
private float _lv = 0.0f;
@@ -129,6 +135,8 @@ public partial class PlayerPhysicsController : CharacterBody2D {
float velx = (Velocity.X / UnitToPx);
float vely = (Velocity.Y / UnitToPx) + Gravity * (float)delta;
if (Mathf.Abs(velx) < 0.1) velx = 0;
var grounded = this.IsOnFloor();
var coyoteGrounded = _timeOffGround < CoyoteTiming;
if (grounded || coyoteGrounded) {
@@ -136,6 +144,7 @@ public partial class PlayerPhysicsController : CharacterBody2D {
else _timeOffGround += (float)delta;
if (Input.IsActionJustPressed("jump")) {
EmitSignal(SignalName.OnJump, (int)JumpKind.Ground, this.IsOnFloor(), this.IsOnWall());
vely = -_lv;
}
@@ -155,6 +164,7 @@ public partial class PlayerPhysicsController : CharacterBody2D {
var side = velx > 0 ? PredictiveCollisions.Location.BottomRight : PredictiveCollisions.Location.BottomLeft;
if (Predictor.AnyHit(side) && !this.IsOnWall()) {
EmitSignal(SignalName.OnTurnbackJump, true, this.IsOnWall());
EmitSignal(SignalName.OnJump, (int)JumpKind.Turnback, this.IsOnFloor(), this.IsOnWall());
var hits = Predictor.GetLastCastHits(side);
_ = hits.First(x => {
if (x.Obj is null) return false;
@@ -195,7 +205,8 @@ public partial class PlayerPhysicsController : CharacterBody2D {
}
}
if (Input.IsActionJustPressed("jump") && Mathf.Abs(vely) < MaxDoubleJumpFallSpeed) {
if (Input.IsActionJustPressed("jump") && Mathf.Abs(vely) < 2) {
EmitSignal(SignalName.OnJump, (int)JumpKind.Midair, this.IsOnFloor(), this.IsOnWall());
vely = -_lv;
}
@@ -208,13 +219,16 @@ public partial class PlayerPhysicsController : CharacterBody2D {
else velx += autostop;
}
var maxXSpeed = grounded ? Input.IsActionPressed("run") ? MaxRunSpeed : MaxWalkSpeed : MaxAirSpeed;
var maxXSpeed = Input.IsActionPressed("run") ? MaxRunSpeed : MaxWalkSpeed;
var maxYSpeed = vely > 0 ? MaxFallSpeed : MaxRiseSpeed;
var (absvelx, absvely) = (Mathf.Abs(velx), Mathf.Abs(vely));
if (absvelx > maxXSpeed)
velx = Mathf.Sign(velx) * Mathf.Max(absvelx - CancellationAcceleration * (float)delta, maxXSpeed);
if (absvely > maxYSpeed)
vely = Mathf.Sign(vely) * Mathf.Max(absvely - CancellationAcceleration * (float)delta, maxYSpeed);
float xcancel = 0, ycancel = 0;
if (absvelx > maxXSpeed) xcancel = -Math.Sign(velx) * CancellationAcceleration * (float)delta;
if (absvely > maxYSpeed) ycancel = -Math.Sign(vely) * CancellationAcceleration * (float)delta;
if (Mathf.Abs(xcancel) + 0.1 > absvelx) velx = 0;
else velx += xcancel;
if (Mathf.Abs(ycancel) + 0.1 > absvely) vely = 0;
else vely += ycancel;
DebugTextLabel.Text =
$"grounded: {grounded}\n" +
+26
View File
@@ -0,0 +1,26 @@
extends AudioStreamPlayer
@export var ground_jump: Array[AudioStream];
@export var midair_jump: Array[AudioStream];
@export var turnback_jump: Array[AudioStream];
enum JumpKind {
Ground = 0,
Turnback = 1,
Midair = 2
}
func _on_character_body_2d_on_jump(kind: JumpKind, isOnGround: bool, isOnWall: bool):
match kind:
JumpKind.Ground:
playSfx(ground_jump)
JumpKind.Turnback:
playSfx(turnback_jump)
JumpKind.Midair:
playSfx(midair_jump)
pass # Replace with function body.
func playSfx(sfx: Array[AudioStream]):
stream = sfx[randi_range(0, sfx.size() - 1)]
play()
+1
View File
@@ -0,0 +1 @@
uid://bwgqvwybyrsmq
-1
View File
@@ -3,7 +3,6 @@ using System;
using System.Collections.Generic;
#nullable enable
public class LevelPattern {
public TileMapPattern Level { get; }