summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes2
-rw-r--r--.gitignore2
-rw-r--r--Assets/Tilesets/road.krabin0 -> 31001 bytes
-rw-r--r--Assets/Tilesets/road.kra~bin0 -> 30751 bytes
-rw-r--r--Assets/Tilesets/road.pngbin0 -> 159 bytes
-rw-r--r--Assets/Tilesets/road.png.import34
-rw-r--r--Assets/Tilesets/road.png~bin0 -> 138 bytes
-rw-r--r--Assets/Tilesets/road_corner.krabin0 -> 31046 bytes
-rw-r--r--Assets/Tilesets/road_corner.kra~bin0 -> 31121 bytes
-rw-r--r--Assets/Tilesets/road_corner.pngbin0 -> 167 bytes
-rw-r--r--Assets/Tilesets/road_corner.png.import34
-rw-r--r--Assets/Tilesets/road_corner.png~bin0 -> 145 bytes
-rw-r--r--Overworld.gd47
-rw-r--r--Overworld.tscn161
-rw-r--r--OverworldPath.gd33
-rw-r--r--OverworldPath.tscn9
-rw-r--r--Player.gd36
-rw-r--r--Player.tscn24
-rw-r--r--Stage.tscn29
-rw-r--r--icon.svg1
-rw-r--r--icon.svg.import37
-rw-r--r--project.godot32
22 files changed, 481 insertions, 0 deletions
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..8ad74f7
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+# Normalize EOL for all files that Git considers text files.
+* text=auto eol=lf
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4709183
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+# Godot 4+ specific ignores
+.godot/
diff --git a/Assets/Tilesets/road.kra b/Assets/Tilesets/road.kra
new file mode 100644
index 0000000..d864c90
--- /dev/null
+++ b/Assets/Tilesets/road.kra
Binary files differ
diff --git a/Assets/Tilesets/road.kra~ b/Assets/Tilesets/road.kra~
new file mode 100644
index 0000000..1a5d325
--- /dev/null
+++ b/Assets/Tilesets/road.kra~
Binary files differ
diff --git a/Assets/Tilesets/road.png b/Assets/Tilesets/road.png
new file mode 100644
index 0000000..7256d38
--- /dev/null
+++ b/Assets/Tilesets/road.png
Binary files differ
diff --git a/Assets/Tilesets/road.png.import b/Assets/Tilesets/road.png.import
new file mode 100644
index 0000000..81bfe1e
--- /dev/null
+++ b/Assets/Tilesets/road.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c72p3u0lq07cg"
+path="res://.godot/imported/road.png-e1b8e8cdbaa17427c3f17ab597a2e29e.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Tilesets/road.png"
+dest_files=["res://.godot/imported/road.png-e1b8e8cdbaa17427c3f17ab597a2e29e.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+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/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
diff --git a/Assets/Tilesets/road.png~ b/Assets/Tilesets/road.png~
new file mode 100644
index 0000000..a55a726
--- /dev/null
+++ b/Assets/Tilesets/road.png~
Binary files differ
diff --git a/Assets/Tilesets/road_corner.kra b/Assets/Tilesets/road_corner.kra
new file mode 100644
index 0000000..af975f4
--- /dev/null
+++ b/Assets/Tilesets/road_corner.kra
Binary files differ
diff --git a/Assets/Tilesets/road_corner.kra~ b/Assets/Tilesets/road_corner.kra~
new file mode 100644
index 0000000..8a3439e
--- /dev/null
+++ b/Assets/Tilesets/road_corner.kra~
Binary files differ
diff --git a/Assets/Tilesets/road_corner.png b/Assets/Tilesets/road_corner.png
new file mode 100644
index 0000000..1d6fa8d
--- /dev/null
+++ b/Assets/Tilesets/road_corner.png
Binary files differ
diff --git a/Assets/Tilesets/road_corner.png.import b/Assets/Tilesets/road_corner.png.import
new file mode 100644
index 0000000..7d81a8e
--- /dev/null
+++ b/Assets/Tilesets/road_corner.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cnhs8rxckalxk"
+path="res://.godot/imported/road_corner.png-b95fcef3e08af7b17ca3c6838333d89b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Tilesets/road_corner.png"
+dest_files=["res://.godot/imported/road_corner.png-b95fcef3e08af7b17ca3c6838333d89b.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+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/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
diff --git a/Assets/Tilesets/road_corner.png~ b/Assets/Tilesets/road_corner.png~
new file mode 100644
index 0000000..43eba40
--- /dev/null
+++ b/Assets/Tilesets/road_corner.png~
Binary files differ
diff --git a/Overworld.gd b/Overworld.gd
new file mode 100644
index 0000000..8031d56
--- /dev/null
+++ b/Overworld.gd
@@ -0,0 +1,47 @@
+extends Node2D
+
+
+const FOLLOW_SPEED = 30
+
+@onready var current_node: OverworldPath = $OverworldPath
+var follows_next_path = false
+var follows_previous_path = false
+
+
+func _process(delta):
+ var path_direction = ""
+ if Input.is_action_just_pressed("ui_up"):
+ path_direction = "up"
+ if Input.is_action_just_pressed("ui_down"):
+ path_direction = "down"
+ if Input.is_action_just_pressed("ui_left"):
+ path_direction = "left"
+ if Input.is_action_just_pressed("ui_right"):
+ path_direction = "right"
+
+ if current_node.next_direction.has(path_direction):
+ follows_next_path = true
+ follows_previous_path = false
+ if current_node.progress > 0.0 and current_node.previous_direction.has(path_direction):
+ follows_next_path = false
+ follows_previous_path = true
+ elif current_node.progress == 0.0 and current_node.previous_path and current_node.previous_path.previous_direction.has(path_direction):
+ current_node = current_node.previous_path
+ follows_next_path = false
+ follows_previous_path = true
+
+ if follows_next_path:
+ if current_node.progress < 1.0:
+ current_node.progress += delta
+ $AnimatedSprite2D.position = current_node.current_position
+ else:
+ follows_next_path = false
+ if current_node.next_path:
+ current_node = current_node.next_path
+
+ if follows_previous_path:
+ if current_node.progress > 0.0:
+ current_node.progress -= delta
+ $AnimatedSprite2D.position = current_node.current_position
+ else:
+ follows_previous_path = false
diff --git a/Overworld.tscn b/Overworld.tscn
new file mode 100644
index 0000000..0ec8362
--- /dev/null
+++ b/Overworld.tscn
@@ -0,0 +1,161 @@
+[gd_scene load_steps=14 format=3 uid="uid://bfusqf766qtpf"]
+
+[ext_resource type="Texture2D" uid="uid://c82tsvwwnmfhe" path="res://icon.svg" id="1_0jh6x"]
+[ext_resource type="Script" path="res://Overworld.gd" id="1_kdl46"]
+[ext_resource type="PackedScene" uid="uid://myunq3ivtmou" path="res://OverworldPath.tscn" id="3_g7b5j"]
+[ext_resource type="Texture2D" uid="uid://c72p3u0lq07cg" path="res://Assets/Tilesets/road.png" id="3_m4ypw"]
+[ext_resource type="Texture2D" uid="uid://cnhs8rxckalxk" path="res://Assets/Tilesets/road_corner.png" id="4_e8qoa"]
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_7b4gy"]
+texture = ExtResource("3_m4ypw")
+0:0/0 = 0
+1:0/0 = 0
+0:1/0 = 0
+1:1/0 = 0
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_s2dpj"]
+texture = ExtResource("4_e8qoa")
+0:0/0 = 0
+1:0/0 = 0
+0:1/0 = 0
+1:1/0 = 0
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_huksr"]
+texture = ExtResource("1_0jh6x")
+0:0/0 = 0
+1:0/0 = 0
+2:0/0 = 0
+3:0/0 = 0
+4:0/0 = 0
+5:0/0 = 0
+6:0/0 = 0
+7:0/0 = 0
+0:1/0 = 0
+1:1/0 = 0
+2:1/0 = 0
+3:1/0 = 0
+4:1/0 = 0
+5:1/0 = 0
+6:1/0 = 0
+7:1/0 = 0
+0:2/0 = 0
+1:2/0 = 0
+2:2/0 = 0
+3:2/0 = 0
+4:2/0 = 0
+5:2/0 = 0
+6:2/0 = 0
+7:2/0 = 0
+0:3/0 = 0
+1:3/0 = 0
+2:3/0 = 0
+3:3/0 = 0
+4:3/0 = 0
+5:3/0 = 0
+6:3/0 = 0
+7:3/0 = 0
+0:4/0 = 0
+1:4/0 = 0
+2:4/0 = 0
+3:4/0 = 0
+4:4/0 = 0
+5:4/0 = 0
+6:4/0 = 0
+7:4/0 = 0
+0:5/0 = 0
+1:5/0 = 0
+2:5/0 = 0
+3:5/0 = 0
+4:5/0 = 0
+5:5/0 = 0
+6:5/0 = 0
+7:5/0 = 0
+0:6/0 = 0
+1:6/0 = 0
+2:6/0 = 0
+3:6/0 = 0
+4:6/0 = 0
+5:6/0 = 0
+6:6/0 = 0
+7:6/0 = 0
+0:7/0 = 0
+1:7/0 = 0
+2:7/0 = 0
+3:7/0 = 0
+4:7/0 = 0
+5:7/0 = 0
+6:7/0 = 0
+7:7/0 = 0
+
+[sub_resource type="TileSet" id="TileSet_h3x8v"]
+sources/4 = SubResource("TileSetAtlasSource_7b4gy")
+sources/5 = SubResource("TileSetAtlasSource_s2dpj")
+sources/6 = SubResource("TileSetAtlasSource_huksr")
+
+[sub_resource type="SpriteFrames" id="SpriteFrames_yu5pw"]
+animations = [{
+"frames": [{
+"duration": 1.0,
+"texture": ExtResource("1_0jh6x")
+}],
+"loop": true,
+"name": &"default",
+"speed": 5.0
+}]
+
+[sub_resource type="Curve2D" id="Curve2D_32f0o"]
+_data = {
+"points": PackedVector2Array(0, 0, 0, 0, 64, 256, 0, 0, 0, 0, 96, 256, 0, 0, 0, 0, 96, 224, 0, 0, 0, 0, 128, 224)
+}
+point_count = 4
+
+[sub_resource type="Curve2D" id="Curve2D_vukdr"]
+_data = {
+"points": PackedVector2Array(0, 0, 0, 0, 128, 224, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 96, 128)
+}
+point_count = 3
+
+[sub_resource type="Curve2D" id="Curve2D_tqmlv"]
+_data = {
+"points": PackedVector2Array(0, 0, 0, 0, 96, 128, 0, 0, 0, 0, 64, 128, 0, 0, 0, 0, 64, 64)
+}
+point_count = 3
+
+[node name="Overworld" type="Node2D"]
+script = ExtResource("1_kdl46")
+
+[node name="Sprite2D" type="Sprite2D" parent="."]
+position = Vector2(224, 160)
+scale = Vector2(3.5, 2.5)
+texture = ExtResource("1_0jh6x")
+metadata/_edit_lock_ = true
+
+[node name="TileMap" type="TileMap" parent="."]
+tile_set = SubResource("TileSet_h3x8v")
+format = 2
+layer_0/tile_data = PackedInt32Array(983043, 4, 0, 1048579, 4, 1, 983044, 65540, 0, 1048580, 65540, 1, 983045, 5, 0, 1048581, 5, 1, 983046, 65541, 0, 1048582, 65541, 1, 851974, 5, 805306369, 917510, 5, 805306368, 851973, 65541, 805306369, 917509, 65541, 805306368, 917511, 5, 1, 851975, 5, 0, 917512, 65541, 1, 851976, 65541, 0, 786439, 65540, 1342177281, 720903, 4, 1342177281, 786440, 65540, 1342177280, 720904, 4, 1342177280, 655367, 65540, 1342177281, 589831, 4, 1342177281, 655368, 65540, 1342177280, 589832, 4, 1342177280, 524295, 5, 1610612736, 458759, 65541, 1610612736, 524296, 5, 1610612737, 458760, 65541, 1610612737, 458756, 5, 1342177280, 524292, 65541, 1342177280, 458755, 5, 1342177281, 524291, 65541, 1342177281, 458757, 4, 0, 524293, 4, 1, 458758, 65540, 0, 524294, 65540, 1, 327684, 4, 1342177280, 393220, 65540, 1342177280, 327683, 4, 1342177281, 393219, 65540, 1342177281, 196612, 4, 1342177280, 262148, 65540, 1342177280, 196611, 4, 1342177281, 262147, 65540, 1342177281)
+layer_1/tile_data = PackedInt32Array(1048580, 6, 0, 917512, 6, 0, 524294, 6, 0, 262148, 6, 0, 524293, 458758, 0, 262147, 458758, 0, 917511, 458758, 0, 1048579, 458758, 0, 983043, 458758, 7, 196611, 458758, 7, 458757, 458758, 7, 851975, 458758, 7, 983044, 6, 7, 851976, 6, 7, 458758, 6, 7, 196612, 6, 7)
+
+[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
+position = Vector2(64, 256)
+scale = Vector2(0.125, 0.125)
+sprite_frames = SubResource("SpriteFrames_yu5pw")
+
+[node name="OverworldPath" parent="." instance=ExtResource("3_g7b5j")]
+curve = SubResource("Curve2D_32f0o")
+next_direction = Array[String](["up", "right"])
+_next_path = NodePath("../OverworldPath2")
+previous_direction = Array[String](["down", "left"])
+
+[node name="OverworldPath2" parent="." instance=ExtResource("3_g7b5j")]
+curve = SubResource("Curve2D_vukdr")
+next_direction = Array[String](["up", "left"])
+_next_path = NodePath("../OverworldPath3")
+previous_direction = Array[String](["down", "right"])
+_previous_path = NodePath("../OverworldPath")
+
+[node name="OverworldPath3" parent="." instance=ExtResource("3_g7b5j")]
+curve = SubResource("Curve2D_tqmlv")
+next_direction = Array[String](["up", "left"])
+previous_direction = Array[String](["down", "right"])
+_previous_path = NodePath("../OverworldPath2")
diff --git a/OverworldPath.gd b/OverworldPath.gd
new file mode 100644
index 0000000..6ae7b8c
--- /dev/null
+++ b/OverworldPath.gd
@@ -0,0 +1,33 @@
+class_name OverworldPath
+extends Path2D
+
+
+@export var next_direction: Array[String] = [
+ "up", "down", "left", "right",
+]
+@export_node_path("OverworldPath") var _next_path: NodePath
+@export var previous_direction: Array[String] = [
+ "up", "down", "left", "right",
+]
+@export_node_path("OverworldPath") var _previous_path: NodePath
+
+
+var next_path: OverworldPath
+var previous_path: OverworldPath
+
+var progress: float:
+ set(value):
+ $PathFollow2D.progress_ratio = value
+ get:
+ return $PathFollow2D.progress_ratio
+
+var current_position: Vector2:
+ get:
+ return $PathFollow2D.position
+
+
+func _ready():
+ if _next_path:
+ next_path = get_node(_next_path)
+ if _previous_path:
+ previous_path = get_node(_previous_path)
diff --git a/OverworldPath.tscn b/OverworldPath.tscn
new file mode 100644
index 0000000..ad65fdf
--- /dev/null
+++ b/OverworldPath.tscn
@@ -0,0 +1,9 @@
+[gd_scene load_steps=2 format=3 uid="uid://myunq3ivtmou"]
+
+[ext_resource type="Script" path="res://OverworldPath.gd" id="1_wha2a"]
+
+[node name="OverworldPath" type="Path2D"]
+script = ExtResource("1_wha2a")
+
+[node name="PathFollow2D" type="PathFollow2D" parent="."]
+loop = false
diff --git a/Player.gd b/Player.gd
new file mode 100644
index 0000000..9528586
--- /dev/null
+++ b/Player.gd
@@ -0,0 +1,36 @@
+extends CharacterBody2D
+
+
+const SPEED = 300.0
+
+const JUMP_VELOCITY = -400.0
+
+# Get the gravity from the project settings to be synced with RigidBody nodes.
+var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
+
+
+func _physics_process(delta):
+ # 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("ui_left", "ui_right")
+ if direction:
+ velocity.x = direction * SPEED
+ else:
+ velocity.x = move_toward(velocity.x, 0, SPEED)
+
+ # Add the gravity.
+ if not is_on_floor():
+ velocity.y += gravity * delta
+
+ # Handle jump.
+ if Input.is_action_just_pressed("jump") and is_on_floor():
+ velocity.y = JUMP_VELOCITY
+ if Input.is_action_just_released("jump"):
+ if velocity.y < 0:
+ velocity.y = 0
+
+ if is_on_wall() and not is_on_floor() and direction and Input.is_action_just_pressed("jump"):
+ velocity.y = JUMP_VELOCITY
+ velocity.x += abs((SPEED*2) / (JUMP_VELOCITY/gravity)) * -direction
+
+ move_and_slide()
diff --git a/Player.tscn b/Player.tscn
new file mode 100644
index 0000000..fc9efcc
--- /dev/null
+++ b/Player.tscn
@@ -0,0 +1,24 @@
+[gd_scene load_steps=4 format=3 uid="uid://58k8ukwgcv4u"]
+
+[ext_resource type="Script" path="res://Player.gd" id="1_0qjo6"]
+[ext_resource type="Texture2D" uid="uid://c82tsvwwnmfhe" path="res://icon.svg" id="2_sojjd"]
+
+[sub_resource type="SpriteFrames" id="SpriteFrames_0mhwv"]
+animations = [{
+"frames": [{
+"duration": 1.0,
+"texture": ExtResource("2_sojjd")
+}],
+"loop": true,
+"name": &"default",
+"speed": 5.0
+}]
+
+[node name="Player" type="CharacterBody2D"]
+script = ExtResource("1_0qjo6")
+
+[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
+polygon = PackedVector2Array(0, -64, 48, -64, 64, -48, 64, 48, 48, 64, -48, 64, -64, 48, -64, 0, -64, -48, -48, -64)
+
+[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
+sprite_frames = SubResource("SpriteFrames_0mhwv")
diff --git a/Stage.tscn b/Stage.tscn
new file mode 100644
index 0000000..c6542f3
--- /dev/null
+++ b/Stage.tscn
@@ -0,0 +1,29 @@
+[gd_scene load_steps=5 format=3 uid="uid://bbfbi6tuggm7f"]
+
+[ext_resource type="Texture2D" uid="uid://c82tsvwwnmfhe" path="res://icon.svg" id="1_lktna"]
+[ext_resource type="PackedScene" uid="uid://58k8ukwgcv4u" path="res://Player.tscn" id="2_wy2jy"]
+
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_tet6l"]
+texture = ExtResource("1_lktna")
+0:0/size_in_atlas = Vector2i(8, 8)
+0:0/0 = 0
+0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
+0:0/0/physics_layer_0/angular_velocity = 0.0
+0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-48, -64, 48, -64, 64, -48, 64, 48, 48, 64, -48, 64, -64, 48, -64, -48)
+
+[sub_resource type="TileSet" id="TileSet_8pkss"]
+physics_layer_0/collision_layer = 1
+sources/1 = SubResource("TileSetAtlasSource_tet6l")
+
+[node name="Stage" type="Node2D"]
+
+[node name="TileMap" type="TileMap" parent="."]
+tile_set = SubResource("TileSet_8pkss")
+format = 2
+layer_0/name = "Ground"
+layer_0/tile_data = PackedInt32Array(589824, 1, 0, 655352, 1, 0, 589832, 1, 0, 327691, 1, 0, 131088, 1, 0, -131050, 1, 0, 393203, 1, 0, 131054, 1, 0, -655338, 1, 0, -1179626, 1, 0, -1703914, 1, 0, -2228202, 1, 0, -65562, 1, 0, -327714, 1, 0, -524329, 1, 0, -720944, 1, 0)
+
+[node name="Player" parent="." instance=ExtResource("2_wy2jy")]
+
+[node name="Camera2D" type="Camera2D" parent="Player"]
+position_smoothing_enabled = true
diff --git a/icon.svg b/icon.svg
new file mode 100644
index 0000000..3fe4f4a
--- /dev/null
+++ b/icon.svg
@@ -0,0 +1 @@
+<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="124" height="124" rx="14" fill="#363d52" stroke="#212532" stroke-width="4"/><g transform="scale(.101) translate(122 122)"><g fill="#fff"><path d="M105 673v33q407 354 814 0v-33z"/><path 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" fill="#478cbf"/><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"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></g></svg>
diff --git a/icon.svg.import b/icon.svg.import
new file mode 100644
index 0000000..0639bc8
--- /dev/null
+++ b/icon.svg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c82tsvwwnmfhe"
+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/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+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
diff --git a/project.godot b/project.godot
new file mode 100644
index 0000000..ce5a865
--- /dev/null
+++ b/project.godot
@@ -0,0 +1,32 @@
+; 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="Squid Girl"
+run/main_scene="res://Stage.tscn"
+config/features=PackedStringArray("4.2", "Forward Plus")
+config/icon="res://icon.svg"
+
+[display]
+
+window/size/viewport_width=640
+window/size/viewport_height=480
+window/stretch/mode="viewport"
+
+[input]
+
+jump={
+"deadzone": 0.5,
+"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,"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,"echo":false,"script":null)
+, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null)
+]
+}