first commit

This commit is contained in:
Peter Hinton
2026-06-21 17:00:58 -06:00
commit a20cfbe748
78 changed files with 2784 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
root = true
[*]
charset = utf-8
+2
View File
@@ -0,0 +1,2 @@
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf
+3
View File
@@ -0,0 +1,3 @@
# Godot 4+ specific ignores
.godot/
/android/
+1
View File
@@ -0,0 +1 @@
Simply open up this project ig Godot, and then run the `main.tcsn` scene.
+23
View File
@@ -0,0 +1,23 @@
extends Area2D
@onready var animated_sprite_2d: AnimatedSprite2D = $AnimatedSprite2D
@onready var collection_sound: AudioStreamPlayer2D = $CollectionSound
@onready var collision_shape_2d: CollisionShape2D = $CollisionShape2D
signal collected
func _on_body_entered(body: Node2D) -> void:
if body.name == "player":
animated_sprite_2d.animation = "collected"
# Start timer so that the apple dissapears.
collection_sound.play()
collected.emit()
call_deferred("_disable_collision")
func _disable_collision() -> void:
collision_shape_2d.disabled = true
func _on_animated_sprite_2d_animation_looped() -> void:
if animated_sprite_2d.animation == "collected":
queue_free()
+1
View File
@@ -0,0 +1 @@
uid://dwymos3js0jm7
+202
View File
@@ -0,0 +1,202 @@
[gd_scene format=3 uid="uid://gobgnd2pf6bp"]
[ext_resource type="Script" uid="uid://dwymos3js0jm7" path="res://apples.gd" id="1_y85m7"]
[ext_resource type="Texture2D" uid="uid://cx5cmfqledj8v" path="res://assets/images/Collectibles/Apple.png" id="1_yv0ho"]
[ext_resource type="Texture2D" uid="uid://du262n0bexm53" path="res://assets/images/Collectibles/Collected.png" id="2_m3d1t"]
[ext_resource type="AudioStream" uid="uid://d3qa5mqjtjvpg" path="res://assets/sounds/collect_apple.wav" id="4_m3d1t"]
[sub_resource type="AtlasTexture" id="AtlasTexture_5b3pe"]
atlas = ExtResource("2_m3d1t")
region = Rect2(0, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_duca7"]
atlas = ExtResource("2_m3d1t")
region = Rect2(32, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_60q4a"]
atlas = ExtResource("2_m3d1t")
region = Rect2(64, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_oam1c"]
atlas = ExtResource("2_m3d1t")
region = Rect2(96, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_k7f4s"]
atlas = ExtResource("2_m3d1t")
region = Rect2(128, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_1iswn"]
atlas = ExtResource("2_m3d1t")
region = Rect2(160, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_bc4kw"]
atlas = ExtResource("1_yv0ho")
region = Rect2(0, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_y85m7"]
atlas = ExtResource("1_yv0ho")
region = Rect2(32, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_m3d1t"]
atlas = ExtResource("1_yv0ho")
region = Rect2(64, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_rls6e"]
atlas = ExtResource("1_yv0ho")
region = Rect2(96, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_yhg1g"]
atlas = ExtResource("1_yv0ho")
region = Rect2(128, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_nrorl"]
atlas = ExtResource("1_yv0ho")
region = Rect2(160, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_wcupg"]
atlas = ExtResource("1_yv0ho")
region = Rect2(192, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_nob0y"]
atlas = ExtResource("1_yv0ho")
region = Rect2(224, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_wk5j3"]
atlas = ExtResource("1_yv0ho")
region = Rect2(256, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_w5e5q"]
atlas = ExtResource("1_yv0ho")
region = Rect2(288, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_5hkel"]
atlas = ExtResource("1_yv0ho")
region = Rect2(320, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_nptbl"]
atlas = ExtResource("1_yv0ho")
region = Rect2(352, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_4ijtc"]
atlas = ExtResource("1_yv0ho")
region = Rect2(384, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_sy44s"]
atlas = ExtResource("1_yv0ho")
region = Rect2(416, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_3yyai"]
atlas = ExtResource("1_yv0ho")
region = Rect2(448, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_6m6yl"]
atlas = ExtResource("1_yv0ho")
region = Rect2(480, 0, 32, 23)
[sub_resource type="AtlasTexture" id="AtlasTexture_n6xrq"]
atlas = ExtResource("1_yv0ho")
region = Rect2(512, 0, 32, 23)
[sub_resource type="SpriteFrames" id="SpriteFrames_5b3pe"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_5b3pe")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_duca7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_60q4a")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_oam1c")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_k7f4s")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_1iswn")
}],
"loop": true,
"name": &"collected",
"speed": 20.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_bc4kw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_y85m7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_m3d1t")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_rls6e")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_yhg1g")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nrorl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wcupg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nob0y")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wk5j3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_w5e5q")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5hkel")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nptbl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4ijtc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_sy44s")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3yyai")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6m6yl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_n6xrq")
}],
"loop": true,
"name": &"idle",
"speed": 20.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_yv0ho"]
radius = 7.0
[node name="Apples" type="Area2D" unique_id=1286053364]
texture_filter = 1
script = ExtResource("1_y85m7")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=469485744]
sprite_frames = SubResource("SpriteFrames_5b3pe")
animation = &"collected"
autoplay = "idle"
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1641849669]
position = Vector2(0, 3)
shape = SubResource("CircleShape2D_yv0ho")
[node name="CollectionSound" type="AudioStreamPlayer2D" parent="." unique_id=196521569]
stream = ExtResource("4_m3d1t")
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
[connection signal="animation_looped" from="AnimatedSprite2D" to="." method="_on_animated_sprite_2d_animation_looped"]
Binary file not shown.
+36
View File
@@ -0,0 +1,36 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://c8bsi7g0gs0vh"
path="res://.godot/imported/Square-Black.ttf-de15d4c54e84a512cb5a21b783a303c7.fontdata"
[deps]
source_file="res://assets/fonts/Square-Black.ttf"
dest_files=["res://.godot/imported/Square-Black.ttf-de15d4c54e84a512cb5a21b783a303c7.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
modulate_color_glyphs=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}
Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ubufodpe3ggi"
path="res://.godot/imported/Blue.png-4a2ce9794860cea5d08d4ab2e0526071.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Background/Blue.png"
dest_files=["res://.godot/imported/Blue.png-4a2ce9794860cea5d08d4ab2e0526071.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cbphfeiv1wije"
path="res://.godot/imported/Brown.png-5733ae39290cf7b083f3966131e7e898.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Background/Brown.png"
dest_files=["res://.godot/imported/Brown.png-5733ae39290cf7b083f3966131e7e898.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c1xo3le13yd5s"
path="res://.godot/imported/Gray.png-dc5b35cac1df34bf8046a38f14b4f1eb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Background/Gray.png"
dest_files=["res://.godot/imported/Gray.png-dc5b35cac1df34bf8046a38f14b4f1eb.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://wo2j88hipv73"
path="res://.godot/imported/Green.png-548cbf01b73fb5e5bf40d1a892de2247.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Background/Green.png"
dest_files=["res://.godot/imported/Green.png-548cbf01b73fb5e5bf40d1a892de2247.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cx5cmfqledj8v"
path="res://.godot/imported/Apple.png-34cb39577f9d237345a97efffc395dc8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Collectibles/Apple.png"
dest_files=["res://.godot/imported/Apple.png-34cb39577f9d237345a97efffc395dc8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 577 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://du262n0bexm53"
path="res://.godot/imported/Collected.png-54590556835bf33337365537fb86391e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Collectibles/Collected.png"
dest_files=["res://.godot/imported/Collected.png-54590556835bf33337365537fb86391e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dau561pxancls"
path="res://.godot/imported/Double Jump (32x32).png-ad9c794c81227f3956ae4352d2587fde.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Pink Man/Double Jump (32x32).png"
dest_files=["res://.godot/imported/Double Jump (32x32).png-ad9c794c81227f3956ae4352d2587fde.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 677 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cvms7pngxuwy4"
path="res://.godot/imported/Fall (32x32).png-06c6229693b5a40cb4a61fe20ad19108.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Pink Man/Fall (32x32).png"
dest_files=["res://.godot/imported/Fall (32x32).png-06c6229693b5a40cb4a61fe20ad19108.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c5tpxxe3ximjo"
path="res://.godot/imported/Hit (32x32).png-cf23d33060e9ad19c119be271b33dc7a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Pink Man/Hit (32x32).png"
dest_files=["res://.godot/imported/Hit (32x32).png-cf23d33060e9ad19c119be271b33dc7a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://krcywud8ps3s"
path="res://.godot/imported/Idle (32x32).png-018d5987dc4dbe24e273354a1c4ad45b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Pink Man/Idle (32x32).png"
dest_files=["res://.godot/imported/Idle (32x32).png-018d5987dc4dbe24e273354a1c4ad45b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ujld3l6fo8p6"
path="res://.godot/imported/Jump (32x32).png-7cbd23f6e2228fa9c70c2db3599a4c86.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Pink Man/Jump (32x32).png"
dest_files=["res://.godot/imported/Jump (32x32).png-7cbd23f6e2228fa9c70c2db3599a4c86.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bq6xnyyhl5od7"
path="res://.godot/imported/Run (32x32).png-d1a81ad2c63f4ac24965355b9c25d86e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Pink Man/Run (32x32).png"
dest_files=["res://.godot/imported/Run (32x32).png-d1a81ad2c63f4ac24965355b9c25d86e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 902 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b3eefjxe3c2yj"
path="res://.godot/imported/Wall Jump (32x32).png-9da69b3917a6f05c83da85af0ae9a240.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Pink Man/Wall Jump (32x32).png"
dest_files=["res://.godot/imported/Wall Jump (32x32).png-9da69b3917a6f05c83da85af0ae9a240.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://6gtaxba6kn6"
path="res://.godot/imported/Hit (38x24).png-4dd8b762bfe8394f4090e658654f7eea.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Snail/Hit (38x24).png"
dest_files=["res://.godot/imported/Hit (38x24).png-4dd8b762bfe8394f4090e658654f7eea.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://do0brncmwhlq7"
path="res://.godot/imported/Idle (38x24).png-3dc007cc7edb56b64a043bea2456542e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Snail/Idle (38x24).png"
dest_files=["res://.godot/imported/Idle (38x24).png-3dc007cc7edb56b64a043bea2456542e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 989 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cc1ykus5cficn"
path="res://.godot/imported/Shell Idle (38x24).png-6a351518051c1d842af2b4d19d143588.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Snail/Shell Idle (38x24).png"
dest_files=["res://.godot/imported/Shell Idle (38x24).png-6a351518051c1d842af2b4d19d143588.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dftcp33t88avf"
path="res://.godot/imported/Shell Top Hit (38x24).png-7d4376be7cbf20d28822e3f7dc2b78ce.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Snail/Shell Top Hit (38x24).png"
dest_files=["res://.godot/imported/Shell Top Hit (38x24).png-7d4376be7cbf20d28822e3f7dc2b78ce.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 829 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cysoy0rtfjsjy"
path="res://.godot/imported/Shell Wall Hit (38x24).png-c35fab384f107b118463398c53b19479.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Snail/Shell Wall Hit (38x24).png"
dest_files=["res://.godot/imported/Shell Wall Hit (38x24).png-c35fab384f107b118463398c53b19479.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cix1l1ksp8og6"
path="res://.godot/imported/Walk (38x24).png-cc2214ae5ff83eba80e58ef6c7120c0e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Snail/Walk (38x24).png"
dest_files=["res://.godot/imported/Walk (38x24).png-cc2214ae5ff83eba80e58ef6c7120c0e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b6ob1fiacyt20"
path="res://.godot/imported/Checkpoint (Flag Idle)(64x64).png-da15746e6bd54175d061e70c1755d961.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Tilemap/Checkpoint (Flag Idle)(64x64).png"
dest_files=["res://.godot/imported/Checkpoint (Flag Idle)(64x64).png-da15746e6bd54175d061e70c1755d961.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d1v2p72tv78vd"
path="res://.godot/imported/Terrain (16x16).png-1db6c4f451bad98efb8c231dcaf2c1e4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/Tilemap/Terrain (16x16).png"
dest_files=["res://.godot/imported/Terrain (16x16).png-1db6c4f451bad98efb8c231dcaf2c1e4.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.
+24
View File
@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://d3qa5mqjtjvpg"
path="res://.godot/imported/collect_apple.wav-a192fbe7570c07e26a2dd96b167269b7.sample"
[deps]
source_file="res://assets/sounds/collect_apple.wav"
dest_files=["res://.godot/imported/collect_apple.wav-a192fbe7570c07e26a2dd96b167269b7.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
Binary file not shown.
+24
View File
@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://07pjcmidpc1e"
path="res://.godot/imported/death.wav-75b3b960b42f4ac0e66fdefe9fd48ee1.sample"
[deps]
source_file="res://assets/sounds/death.wav"
dest_files=["res://.godot/imported/death.wav-75b3b960b42f4ac0e66fdefe9fd48ee1.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
Binary file not shown.
+24
View File
@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://bibfbl3bdtj0t"
path="res://.godot/imported/jump.wav-395b727cde98999423d5c020c9c3492f.sample"
[deps]
source_file="res://assets/sounds/jump.wav"
dest_files=["res://.godot/imported/jump.wav-395b727cde98999423d5c020c9c3492f.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://bq00ru73o3k7c"
path="res://.godot/imported/music.ogg-a816242481c3cc8e174cac58f63e5379.oggvorbisstr"
[deps]
source_file="res://assets/sounds/music.ogg"
dest_files=["res://.godot/imported/music.ogg-a816242481c3cc8e174cac58f63e5379.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
+46
View File
@@ -0,0 +1,46 @@
[preset.0]
name="Linux"
platform="Linux"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../game.x86_64"
patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
patch_delta_min_reduction=0.1
patch_delta_include_filters="*"
patch_delta_exclude_filters=""
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.0.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
binary_format/embed_pck=false
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
shader_baker/enabled=false
binary_format/architecture="x86_64"
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="#!/usr/bin/env bash
export DISPLAY=:0
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
\"{temp_dir}/{exe_name}\" {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
pkill -x -f \"{temp_dir}/{exe_name} {cmd_args}\"
rm -rf \"{temp_dir}\""
+8
View File
@@ -0,0 +1,8 @@
extends Area2D
signal player_entered
func _on_body_entered(body: Node2D) -> void:
if body.name == "player":
print("You win!")
player_entered.emit(body)
+1
View File
@@ -0,0 +1 @@
uid://c18s1qo5mxbl
+100
View File
@@ -0,0 +1,100 @@
[gd_scene format=3 uid="uid://pef7xb0ldte1"]
[ext_resource type="Script" uid="uid://c18s1qo5mxbl" path="res://flag.gd" id="1_amn8n"]
[ext_resource type="Texture2D" uid="uid://b6ob1fiacyt20" path="res://assets/images/Tilemap/Checkpoint (Flag Idle)(64x64).png" id="1_l1sgl"]
[sub_resource type="AtlasTexture" id="AtlasTexture_amn8n"]
atlas = ExtResource("1_l1sgl")
region = Rect2(0, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_ukulb"]
atlas = ExtResource("1_l1sgl")
region = Rect2(64, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_ts4f7"]
atlas = ExtResource("1_l1sgl")
region = Rect2(128, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_v7xjy"]
atlas = ExtResource("1_l1sgl")
region = Rect2(192, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_pcbnv"]
atlas = ExtResource("1_l1sgl")
region = Rect2(256, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_rssqg"]
atlas = ExtResource("1_l1sgl")
region = Rect2(320, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_esaoi"]
atlas = ExtResource("1_l1sgl")
region = Rect2(384, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_uwdpu"]
atlas = ExtResource("1_l1sgl")
region = Rect2(448, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_y1htw"]
atlas = ExtResource("1_l1sgl")
region = Rect2(512, 0, 64, 64)
[sub_resource type="AtlasTexture" id="AtlasTexture_d5jik"]
atlas = ExtResource("1_l1sgl")
region = Rect2(576, 0, 64, 64)
[sub_resource type="SpriteFrames" id="SpriteFrames_bfqd6"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_amn8n")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ukulb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ts4f7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_v7xjy")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_pcbnv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_rssqg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_esaoi")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_uwdpu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_y1htw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_d5jik")
}],
"loop": true,
"name": &"default",
"speed": 20.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_l1sgl"]
size = Vector2(12, 26)
[node name="Flag" type="Area2D" unique_id=2062054144]
script = ExtResource("1_amn8n")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=2107470626]
texture_filter = 1
scale = Vector2(0.75, 0.75)
sprite_frames = SubResource("SpriteFrames_bfqd6")
autoplay = "default"
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1390936308]
position = Vector2(6, 6)
shape = SubResource("RectangleShape2D_l1sgl")
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>

After

Width:  |  Height:  |  Size: 995 B

+43
View File
@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://yslw3521kum3"
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.svg"
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
+291
View File
File diff suppressed because one or more lines are too long
+219
View File
@@ -0,0 +1,219 @@
[gd_scene format=4 uid="uid://3n4ictqvq52q"]
[ext_resource type="Texture2D" uid="uid://d1v2p72tv78vd" path="res://assets/images/Tilemap/Terrain (16x16).png" id="1_r6vdu"]
[ext_resource type="PackedScene" uid="uid://pef7xb0ldte1" path="res://flag.tscn" id="2_21xmu"]
[ext_resource type="PackedScene" uid="uid://cj836hhvv8ecn" path="res://player.tscn" id="3_8i3m3"]
[ext_resource type="PackedScene" uid="uid://doyskrgo8v71d" path="res://snail.tscn" id="4_rmy57"]
[ext_resource type="PackedScene" uid="uid://gobgnd2pf6bp" path="res://apples.tscn" id="5_qulpo"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_4d4qa"]
texture = ExtResource("1_r6vdu")
0:0/0 = 0
1:0/0 = 0
2:0/0 = 0
3:0/0 = 0
4:0/0 = 0
6:0/0 = 0
7:0/0 = 0
8:0/0 = 0
9:0/0 = 0
10:0/0 = 0
12:0/0 = 0
13:0/0 = 0
14:0/0 = 0
15:0/0 = 0
17:0/0 = 0
18:0/0 = 0
19:0/0 = 0
0:1/0 = 0
1:1/0 = 0
2:1/0 = 0
3:1/0 = 0
4:1/0 = 0
6:1/0 = 0
7:1/0 = 0
8:1/0 = 0
9:1/0 = 0
10:1/0 = 0
12:1/0 = 0
13:1/0 = 0
14:1/0 = 0
15:1/0 = 0
17:1/0 = 0
18:1/0 = 0
19:1/0 = 0
0:2/0 = 0
1:2/0 = 0
2:2/0 = 0
6:2/0 = 0
7:2/0 = 0
8:2/0 = 0
13:2/0 = 0
14:2/0 = 0
15:2/0 = 0
17:2/0 = 0
17:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
18:2/0 = 0
18:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
19:2/0 = 0
19:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
0:4/0 = 0
1:4/0 = 0
2:4/0 = 0
3:4/0 = 0
4:4/0 = 0
6:4/0 = 0
7:4/0 = 0
8:4/0 = 0
9:4/0 = 0
10:4/0 = 0
12:4/0 = 0
13:4/0 = 0
14:4/0 = 0
15:4/0 = 0
17:4/0 = 0
18:4/0 = 0
19:4/0 = 0
20:4/0 = 0
21:4/0 = 0
0:5/0 = 0
1:5/0 = 0
2:5/0 = 0
3:5/0 = 0
4:5/0 = 0
6:5/0 = 0
7:5/0 = 0
8:5/0 = 0
9:5/0 = 0
10:5/0 = 0
12:5/0 = 0
13:5/0 = 0
14:5/0 = 0
15:5/0 = 0
17:5/0 = 0
18:5/0 = 0
19:5/0 = 0
20:5/0 = 0
21:5/0 = 0
0:6/0 = 0
1:6/0 = 0
2:6/0 = 0
6:6/0 = 0
7:6/0 = 0
8:6/0 = 0
13:6/0 = 0
14:6/0 = 0
15:6/0 = 0
17:6/0 = 0
18:6/0 = 0
19:6/0 = 0
0:8/0 = 0
1:8/0 = 0
2:8/0 = 0
3:8/0 = 0
4:8/0 = 0
6:8/0 = 0
6:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:8/0 = 0
7:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:8/0 = 0
8:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
9:8/0 = 0
10:8/0 = 0
12:8/0 = 0
13:8/0 = 0
14:8/0 = 0
15:8/0 = 0
17:8/0 = 0
17:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
18:8/0 = 0
18:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
19:8/0 = 0
19:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
20:8/0 = 0
0:9/0 = 0
1:9/0 = 0
2:9/0 = 0
3:9/0 = 0
4:9/0 = 0
6:9/0 = 0
6:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:9/0 = 0
7:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:9/0 = 0
8:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
9:9/0 = 0
10:9/0 = 0
12:9/0 = 0
13:9/0 = 0
14:9/0 = 0
15:9/0 = 0
17:9/0 = 0
17:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
18:9/0 = 0
18:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
19:9/0 = 0
19:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
20:9/0 = 0
0:10/0 = 0
1:10/0 = 0
2:10/0 = 0
6:10/0 = 0
6:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:10/0 = 0
7:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:10/0 = 0
8:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
13:10/0 = 0
14:10/0 = 0
15:10/0 = 0
18:10/0 = 0
18:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
19:10/0 = 0
19:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
20:10/0 = 0
[sub_resource type="TileSet" id="TileSet_e5u8s"]
physics_layer_0/collision_layer = 1
sources/0 = SubResource("TileSetAtlasSource_4d4qa")
[node name="LevelRoot" type="Node2D" unique_id=510015682]
scale = Vector2(3, 3)
[node name="level1" type="TileMapLayer" parent="." unique_id=1780233570]
tile_map_data = PackedByteArray("AAAAABYAAAAHAAkAAAABABYAAAAHAAkAAAACABYAAAAHAAkAAAADABYAAAAHAAkAAAAEABYAAAAHAAkAAAAFABYAAAAHAAkAAAAGABYAAAAHAAkAAAAHABYAAAAHAAkAAAAIABYAAAAHAAkAAAAJABYAAAAHAAkAAAAKABYAAAAHAAkAAAALABYAAAAHAAkAAAAMABYAAAAHAAkAAAANABYAAAAHAAkAAAAOABYAAAAHAAkAAAAPABYAAAAHAAkAAAAQABYAAAAHAAkAAAARABYAAAAHAAkAAAASABYAAAAHAAkAAAATABYAAAAHAAkAAAAUABYAAAAHAAkAAAAVABYAAAAHAAkAAAAWABYAAAAHAAkAAAAXABYAAAAHAAkAAAAYABYAAAAHAAkAAAAZABYAAAAHAAkAAAAaABYAAAAHAAkAAAAbABYAAAAHAAkAAAAcABYAAAAHAAkAAAAdABYAAAAHAAkAAAAeABYAAAAHAAkAAAAfABYAAAAHAAkAAAAgABYAAAAHAAkAAAAhABYAAAAHAAkAAAAiABYAAAAHAAkAAAAjABYAAAAHAAkAAAAkABYAAAAHAAkAAAAlABYAAAAHAAkAAAAmABYAAAAHAAkAAAAnABYAAAAHAAkAAAAoABYAAAAHAAkAAAApABYAAAAHAAkAAAAqABYAAAAHAAkAAAArABYAAAAHAAkAAAAsABYAAAAHAAkAAAAtABYAAAAHAAkAAAAuABYAAAAHAAkAAAAvABYAAAAHAAkAAAAwABYAAAAHAAkAAAAxABYAAAAHAAkAAAAyABYAAAAHAAkAAAAzABYAAAAHAAkAAAA0ABYAAAAHAAkAAAA1ABYAAAAHAAkAAAA2ABYAAAAHAAkAAAA3ABYAAAAHAAkAAAA4ABYAAAAHAAkAAAA5ABYAAAAHAAkAAAA6ABYAAAAHAAkAAAA7ABYAAAAHAAkAAAA8ABYAAAAHAAkAAAA9ABYAAAAHAAkAAAA+ABYAAAAHAAkAAAA/ABYAAAAHAAkAAABAABYAAAAHAAkAAABBABYAAAAHAAkAAABCABYAAAAHAAkAAABDABYAAAAHAAkAAABEABYAAAAHAAkAAABFABYAAAAHAAkAAABGABYAAAAHAAkAAABHABYAAAAHAAkAAABIABYAAAAHAAkAAABJABYAAAAHAAkAAABKABYAAAAHAAkAAAATAA8AAAAGAAgAAAAUAA8AAAAHAAgAAAAVAA8AAAAIAAgAAAAZABUAAAAGAAgAAAAaABUAAAAHAAgAAAAbABUAAAAIAAgAAAAdABIAAAAGAAgAAAAeABIAAAAHAAgAAAAfABIAAAAIAAgAAAAYAAwAAAAGAAgAAAAZAAwAAAAHAAgAAAAaAAwAAAAIAAgAAAAdAAkAAAAGAAgAAAAeAAkAAAAHAAgAAAAfAAkAAAAIAAgAAAAjABMAAAAGAAgAAAAkABMAAAAHAAgAAAAlABMAAAAIAAgAAAAoABAAAAAGAAgAAAApABAAAAAHAAgAAAAqABAAAAAIAAgAAAAkAA0AAAAGAAgAAAAlAA0AAAAHAAgAAAAmAA0AAAAIAAgAAAAgAAsAAAAGAAgAAAAhAAsAAAAHAAgAAAAiAAsAAAAIAAgAAAAMABMAAAAGAAgAAAANABMAAAAHAAgAAAAOABMAAAAIAAgAAAAPABEAAAAGAAgAAAAQABEAAAAHAAgAAAARABEAAAAIAAgAAAA7ABMAAAAGAAgAAAA8ABMAAAAHAAgAAAA9ABMAAAAIAAgAAAA2ABEAAAAGAAgAAAA3ABEAAAAHAAgAAAA4ABEAAAAIAAgAAAAwABIAAAAGAAgAAAAxABIAAAAHAAgAAAAyABIAAAAIAAgAAAAtAA4AAAAGAAgAAAAuAA4AAAAHAAgAAAAvAA4AAAAIAAgAAAAyAAwAAAAGAAgAAAAzAAwAAAAHAAgAAAA0AAwAAAAIAAgAAAApAAsAAAAGAAgAAAAqAAsAAAAHAAgAAAArAAsAAAAIAAgAAAA3AAkAAAAGAAgAAAA4AAkAAAAHAAgAAAA5AAkAAAAIAAgAAABFABQAAAASAAkAAABFABUAAAASAAoAAABGABQAAAATAAkAAABGABUAAAATAAoAAAA=")
tile_set = SubResource("TileSet_e5u8s")
[node name="Flag" parent="." unique_id=2062054144 instance=ExtResource("2_21xmu")]
position = Vector2(1158, 328.33334)
[node name="player" parent="." unique_id=392379192 instance=ExtResource("3_8i3m3")]
position = Vector2(50.33333, 161)
[node name="Enemies" type="Node2D" parent="." unique_id=765782427]
[node name="Snail" parent="Enemies" unique_id=1912204803 instance=ExtResource("4_rmy57")]
position = Vector2(755, 336.33334)
[node name="Snail2" parent="Enemies" unique_id=926948332 instance=ExtResource("4_rmy57")]
position = Vector2(558, 337.6667)
[node name="Apples" type="Node2D" parent="." unique_id=1812140522]
[node name="Apples" parent="Apples" unique_id=1286053364 instance=ExtResource("5_qulpo")]
position = Vector2(909, 131)
[node name="Apples6" parent="Apples" unique_id=542364517 instance=ExtResource("5_qulpo")]
position = Vector2(680.6666, 162.33333)
[node name="Apples4" parent="Apples" unique_id=1912259137 instance=ExtResource("5_qulpo")]
position = Vector2(791, 279.33334)
[node name="Apples5" parent="Apples" unique_id=1221840947 instance=ExtResource("5_qulpo")]
position = Vector2(487.66666, 276.33334)
[node name="Apples2" parent="Apples" unique_id=1069443177 instance=ExtResource("5_qulpo")]
position = Vector2(666, 340)
[node name="Apples3" parent="Apples" unique_id=1721414831 instance=ExtResource("5_qulpo")]
position = Vector2(481, 136.33334)
+210
View File
File diff suppressed because one or more lines are too long
+47
View File
@@ -0,0 +1,47 @@
extends Node2D
var score :int = 0
var level :int = 1
var current_level_root :Node = null
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
current_level_root = get_node("LevelRoot")
_load_level(level)
func _load_level(level :int) -> void:
if current_level_root:
current_level_root.queue_free()
var level_path = "res://level%s" % level +".tscn"
current_level_root = load(level_path).instantiate()
add_child(current_level_root)
current_level_root.name = "LevelRoot"
_setup_level(current_level_root)
func _setup_level(level_root :Node) -> void:
var exit = level_root.get_node_or_null("Flag")
if exit:
exit.player_entered.connect(_on_exit_body_entered)
var enemies = level_root.get_node_or_null("Enemies")
if enemies:
for enemy in enemies.get_children():
enemy.player_died.connect(_on_player_dead)
var apples = level_root.get_node_or_null("Apples")
if apples:
for apple in apples.get_children():
apple.collected.connect(_increase_score)
func _on_player_dead(body):
body._die()
func _increase_score() -> void:
score += 1
print(score)
func _on_exit_body_entered(body: Node2D):
print(body)
level += 1
body.can_move = false
_load_level(level)
+1
View File
@@ -0,0 +1 @@
uid://bi0huapp06d5d
+16
View File
@@ -0,0 +1,16 @@
[gd_scene format=3 uid="uid://dcq87880d84d1"]
[ext_resource type="Script" uid="uid://bi0huapp06d5d" path="res://main.gd" id="1_1bvp3"]
[ext_resource type="Texture2D" uid="uid://ubufodpe3ggi" path="res://assets/images/Background/Blue.png" id="1_h2yge"]
[node name="Main" type="Node2D" unique_id=49659626]
script = ExtResource("1_1bvp3")
[node name="TextureRect" type="TextureRect" parent="." unique_id=1615112427]
texture_filter = 1
offset_left = -2297.0
offset_top = -87190.0
offset_right = 87703.0
offset_bottom = 2810.0
texture = ExtResource("1_h2yge")
stretch_mode = 1
+67
View File
@@ -0,0 +1,67 @@
extends CharacterBody2D
@onready var animated_sprite_2d: AnimatedSprite2D = $AnimatedSprite2D
@onready var jump_sound: AudioStreamPlayer2D = $JumpSound
@onready var death_sound: AudioStreamPlayer2D = $DeathSound
@onready var respawn_timer: Timer = $RespawnTimer
@onready var collision_shape_2d: CollisionShape2D = $CollisionShape2D
const SPEED = 320.0
const JUMP_VELOCITY = -850.0
var alive = true
var can_move = true
func _physics_process(delta: float) -> void:
if !alive:
return
# Add animation
if velocity.x > 1 or velocity.x < -1:
animated_sprite_2d.animation = "running"
else:
animated_sprite_2d.animation = "idle"
# Add the gravity.
if not is_on_floor():
velocity += get_gravity() * delta
animated_sprite_2d.animation = "jumping"
if can_move:
# Handle jump.
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = JUMP_VELOCITY
jump_sound.play()
# Get the input direction and handle the movement/deceleration.
# As good practice, you should replace UI actions with custom gameplay actions.
var direction := Input.get_axis("left", "right")
if direction:
velocity.x = direction * SPEED
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
move_and_slide()
if direction == 1:
animated_sprite_2d.flip_h = false
elif direction == -1:
animated_sprite_2d.flip_h = true
func _die() -> void:
alive = false
call_deferred("_disable_collision")
print(collision_shape_2d)
animated_sprite_2d.animation = "dying"
death_sound.play()
respawn_timer.start()
func _disable_collision():
collision_shape_2d.disabled = true
func _enable_collision():
collision_shape_2d.disabled = false
func _on_respawn_timer_timeout() -> void:
call_deferred("_enable_collision")
position = Vector2(50, 150)
alive = true
+1
View File
@@ -0,0 +1 @@
uid://ddnvwuivmq1kj
+278
View File
@@ -0,0 +1,278 @@
[gd_scene format=3 uid="uid://cj836hhvv8ecn"]
[ext_resource type="Texture2D" uid="uid://c5tpxxe3ximjo" path="res://assets/images/Pink Man/Hit (32x32).png" id="1_hqtel"]
[ext_resource type="Script" uid="uid://ddnvwuivmq1kj" path="res://player.gd" id="1_sweqy"]
[ext_resource type="Texture2D" uid="uid://krcywud8ps3s" path="res://assets/images/Pink Man/Idle (32x32).png" id="2_sweqy"]
[ext_resource type="Texture2D" uid="uid://ujld3l6fo8p6" path="res://assets/images/Pink Man/Jump (32x32).png" id="3_2hs0m"]
[ext_resource type="Texture2D" uid="uid://bq6xnyyhl5od7" path="res://assets/images/Pink Man/Run (32x32).png" id="4_1jxqw"]
[ext_resource type="AudioStream" uid="uid://bibfbl3bdtj0t" path="res://assets/sounds/jump.wav" id="6_2hs0m"]
[ext_resource type="AudioStream" uid="uid://07pjcmidpc1e" path="res://assets/sounds/death.wav" id="7_1jxqw"]
[sub_resource type="AtlasTexture" id="AtlasTexture_dw050"]
atlas = ExtResource("1_hqtel")
region = Rect2(0, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_b26j0"]
atlas = ExtResource("1_hqtel")
region = Rect2(32, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_n7ghd"]
atlas = ExtResource("1_hqtel")
region = Rect2(64, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_nvl01"]
atlas = ExtResource("1_hqtel")
region = Rect2(96, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_ivps1"]
atlas = ExtResource("1_hqtel")
region = Rect2(128, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_urp6f"]
atlas = ExtResource("1_hqtel")
region = Rect2(160, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_bwjto"]
atlas = ExtResource("1_hqtel")
region = Rect2(192, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_606se"]
atlas = ExtResource("2_sweqy")
region = Rect2(0, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_u1c27"]
atlas = ExtResource("2_sweqy")
region = Rect2(32, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_op7ga"]
atlas = ExtResource("2_sweqy")
region = Rect2(64, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_q13i1"]
atlas = ExtResource("2_sweqy")
region = Rect2(96, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_pylmc"]
atlas = ExtResource("2_sweqy")
region = Rect2(128, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_pbfsw"]
atlas = ExtResource("2_sweqy")
region = Rect2(160, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_5tmop"]
atlas = ExtResource("2_sweqy")
region = Rect2(192, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_7ahtn"]
atlas = ExtResource("2_sweqy")
region = Rect2(224, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_7lmhl"]
atlas = ExtResource("2_sweqy")
region = Rect2(256, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_dx0e4"]
atlas = ExtResource("2_sweqy")
region = Rect2(288, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_jm5j8"]
atlas = ExtResource("2_sweqy")
region = Rect2(320, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_7hik5"]
atlas = ExtResource("4_1jxqw")
region = Rect2(0, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_qtqh7"]
atlas = ExtResource("4_1jxqw")
region = Rect2(32, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_2wuci"]
atlas = ExtResource("4_1jxqw")
region = Rect2(64, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_iruf7"]
atlas = ExtResource("4_1jxqw")
region = Rect2(96, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_j5n4i"]
atlas = ExtResource("4_1jxqw")
region = Rect2(128, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_634y6"]
atlas = ExtResource("4_1jxqw")
region = Rect2(160, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_efrwb"]
atlas = ExtResource("4_1jxqw")
region = Rect2(192, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_hiqhm"]
atlas = ExtResource("4_1jxqw")
region = Rect2(224, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_tkwlq"]
atlas = ExtResource("4_1jxqw")
region = Rect2(256, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_hl5qd"]
atlas = ExtResource("4_1jxqw")
region = Rect2(288, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_ek41f"]
atlas = ExtResource("4_1jxqw")
region = Rect2(320, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_khis8"]
atlas = ExtResource("4_1jxqw")
region = Rect2(352, 0, 32, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_b88wv"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_dw050")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_b26j0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_n7ghd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nvl01")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ivps1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_urp6f")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bwjto")
}],
"loop": true,
"name": &"dying",
"speed": 20.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_606se")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_u1c27")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_op7ga")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_q13i1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_pylmc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_pbfsw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5tmop")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7ahtn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7lmhl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dx0e4")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jm5j8")
}],
"loop": true,
"name": &"idle",
"speed": 20.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_2hs0m")
}],
"loop": true,
"name": &"jumping",
"speed": 20.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_7hik5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qtqh7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2wuci")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_iruf7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_j5n4i")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_634y6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_efrwb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hiqhm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_tkwlq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hl5qd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ek41f")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_khis8")
}],
"loop": true,
"name": &"running",
"speed": 20.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_sweqy"]
size = Vector2(13.000001, 23.333332)
[node name="player" type="CharacterBody2D" unique_id=392379192]
script = ExtResource("1_sweqy")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=9252005]
texture_filter = 1
scale = Vector2(0.9, 0.9)
sprite_frames = SubResource("SpriteFrames_b88wv")
animation = &"idle"
autoplay = "idle"
frame = 7
frame_progress = 0.036300987
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1853222578]
position = Vector2(0.49999952, 2.666668)
shape = SubResource("RectangleShape2D_sweqy")
[node name="JumpSound" type="AudioStreamPlayer2D" parent="." unique_id=1585311637]
stream = ExtResource("6_2hs0m")
[node name="DeathSound" type="AudioStreamPlayer2D" parent="." unique_id=340982183]
stream = ExtResource("7_1jxqw")
[node name="RespawnTimer" type="Timer" parent="." unique_id=1999432688]
one_shot = true
[node name="Camera2D" type="Camera2D" parent="." unique_id=1159861560]
zoom = Vector2(0.75, 0.75)
[connection signal="timeout" from="RespawnTimer" to="." method="_on_respawn_timer_timeout"]
+52
View File
@@ -0,0 +1,52 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=5
[application]
config/name="platformer_turtorial"
run/main_scene="uid://dcq87880d84d1"
config/features=PackedStringArray("4.6", "Forward Plus")
config/icon="res://icon.svg"
[display]
window/size/viewport_width=1280
window/size/viewport_height=720
[input]
left={
"deadzone": 0.2,
"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":65,"key_label":0,"unicode":97,"location":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":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
right={
"deadzone": 0.2,
"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":68,"key_label":0,"unicode":100,"location":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":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
jump={
"deadzone": 0.2,
"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":32,"key_label":0,"unicode":32,"location":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":119,"location":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":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
[physics]
3d/physics_engine="Jolt Physics"
2d/default_gravity=2600.0
[rendering]
rendering_device/driver.windows="d3d12"
+35
View File
@@ -0,0 +1,35 @@
extends Node2D
@onready var animated_sprite_2d: AnimatedSprite2D = $AnimatedSprite2D
@onready var death_timer: Timer = $DeathTimer
@onready var collision_shape_2d: CollisionShape2D = $AnimatedSprite2D/Area2D/CollisionShape2D
signal player_died
const SPEED :int = 50
var direction :float = -1.0
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
position.x += direction * SPEED * delta
func _on_area_2d_body_entered_for_death(body: Node2D) -> void:
if body.name == "player":
animated_sprite_2d.animation = "dying"
queue_free()
death_timer.start()
func _on_body_entered(body: Node2D) -> void:
if body.name == "player":
emit_signal("player_died", body)
direction *= -1
animated_sprite_2d.flip_h = !animated_sprite_2d.flip_h
func _on_death_timer_timeout() -> void:
print("Timer finished")
+1
View File
@@ -0,0 +1 @@
uid://hydqcpmmn0pu
+164
View File
@@ -0,0 +1,164 @@
[gd_scene format=3 uid="uid://doyskrgo8v71d"]
[ext_resource type="Script" uid="uid://hydqcpmmn0pu" path="res://snail.gd" id="1_insh8"]
[ext_resource type="Texture2D" uid="uid://6gtaxba6kn6" path="res://assets/images/Snail/Hit (38x24).png" id="1_kwcx3"]
[ext_resource type="Texture2D" uid="uid://cix1l1ksp8og6" path="res://assets/images/Snail/Walk (38x24).png" id="2_insh8"]
[sub_resource type="AtlasTexture" id="AtlasTexture_4w31b"]
atlas = ExtResource("1_kwcx3")
region = Rect2(0, 0, 38, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_58xrm"]
atlas = ExtResource("1_kwcx3")
region = Rect2(38, 0, 38, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_mr66v"]
atlas = ExtResource("1_kwcx3")
region = Rect2(76, 0, 38, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_fc0et"]
atlas = ExtResource("1_kwcx3")
region = Rect2(114, 0, 38, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_k75rl"]
atlas = ExtResource("1_kwcx3")
region = Rect2(152, 0, 38, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_1henu"]
atlas = ExtResource("2_insh8")
region = Rect2(0, 0, 38, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_kyqmk"]
atlas = ExtResource("2_insh8")
region = Rect2(38, 0, 38, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_xnlcv"]
atlas = ExtResource("2_insh8")
region = Rect2(76, 0, 38, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_cumd5"]
atlas = ExtResource("2_insh8")
region = Rect2(114, 0, 38, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_gkwkn"]
atlas = ExtResource("2_insh8")
region = Rect2(152, 0, 38, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_6jqhp"]
atlas = ExtResource("2_insh8")
region = Rect2(190, 0, 38, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_7ottm"]
atlas = ExtResource("2_insh8")
region = Rect2(228, 0, 38, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_8dhav"]
atlas = ExtResource("2_insh8")
region = Rect2(266, 0, 38, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_hal53"]
atlas = ExtResource("2_insh8")
region = Rect2(304, 0, 38, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_277oh"]
atlas = ExtResource("2_insh8")
region = Rect2(342, 0, 38, 24)
[sub_resource type="SpriteFrames" id="SpriteFrames_esbs8"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_4w31b")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_58xrm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_mr66v")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_fc0et")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_k75rl")
}],
"loop": true,
"name": &"dying",
"speed": 20.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_1henu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kyqmk")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_xnlcv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_cumd5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_gkwkn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6jqhp")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7ottm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8dhav")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hal53")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_277oh")
}],
"loop": true,
"name": &"walking",
"speed": 20.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_r7se8"]
size = Vector2(1, 9)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_insh8"]
size = Vector2(27, 4)
[node name="Snail" type="Node2D" unique_id=718794216]
script = ExtResource("1_insh8")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=50871182]
texture_filter = 1
position = Vector2(-2, 0)
sprite_frames = SubResource("SpriteFrames_esbs8")
animation = &"walking"
autoplay = "walking"
frame_progress = 0.12121709
[node name="Area2D" type="Area2D" parent="AnimatedSprite2D" unique_id=13797364]
position = Vector2(2, 0)
[node name="CollisionShape2D" type="CollisionShape2D" parent="AnimatedSprite2D/Area2D" unique_id=1763263041]
position = Vector2(-17, 5)
shape = SubResource("RectangleShape2D_r7se8")
[node name="CollisionShape2D2" type="CollisionShape2D" parent="AnimatedSprite2D/Area2D" unique_id=1521992116]
position = Vector2(15, 5)
shape = SubResource("RectangleShape2D_r7se8")
[node name="DeathTimer" type="Timer" parent="." unique_id=479476094]
one_shot = true
[node name="Area2D" type="Area2D" parent="." unique_id=610273950]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D" unique_id=711905406]
position = Vector2(-1.5, -4)
shape = SubResource("RectangleShape2D_insh8")
[connection signal="body_entered" from="AnimatedSprite2D/Area2D" to="." method="_on_body_entered"]
[connection signal="timeout" from="DeathTimer" to="." method="_on_death_timer_timeout"]
[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered_for_death"]