summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore12
-rw-r--r--Assets/2015-02-26 [DB32](Generic Platformer)(Clouds).pngbin0 -> 1650 bytes
-rw-r--r--Assets/2015-02-26 [DB32](Generic Platformer)(Clouds).png.import34
-rw-r--r--Assets/2015-02-26 [DB32](Generic Platformer)(Mountains).pngbin0 -> 3330 bytes
-rw-r--r--Assets/2015-02-26 [DB32](Generic Platformer)(Mountains).png.import34
-rw-r--r--Assets/2015-02-26 [DB32](Generic Platformer)(Tileset).pngbin0 -> 4067 bytes
-rw-r--r--Assets/2015-02-26 [DB32](Generic Platformer)(Tileset).png.import34
-rw-r--r--Assets/Characters/Tux/Back.pngbin0 -> 249 bytes
-rw-r--r--Assets/Characters/Tux/Back.png.import34
-rw-r--r--Assets/Characters/Tux/Duck.pngbin0 -> 357 bytes
-rw-r--r--Assets/Characters/Tux/Duck.png.import34
-rw-r--r--Assets/Characters/Tux/Fall1.pngbin0 -> 399 bytes
-rw-r--r--Assets/Characters/Tux/Fall1.png.import34
-rw-r--r--Assets/Characters/Tux/Fall1Wings.pngbin0 -> 417 bytes
-rw-r--r--Assets/Characters/Tux/Fall1Wings.png.import34
-rw-r--r--Assets/Characters/Tux/Fall2Wings.pngbin0 -> 411 bytes
-rw-r--r--Assets/Characters/Tux/Fall2Wings.png.import34
-rw-r--r--Assets/Characters/Tux/Front.pngbin0 -> 402 bytes
-rw-r--r--Assets/Characters/Tux/Front.png.import34
-rw-r--r--Assets/Characters/Tux/Jump.pngbin0 -> 366 bytes
-rw-r--r--Assets/Characters/Tux/Jump.png.import34
-rw-r--r--Assets/Characters/Tux/Slide.pngbin0 -> 360 bytes
-rw-r--r--Assets/Characters/Tux/Slide.png.import34
-rw-r--r--Assets/Characters/Tux/Swim.pngbin0 -> 390 bytes
-rw-r--r--Assets/Characters/Tux/Swim.png.import34
-rw-r--r--Assets/Characters/Tux/Walk1.pngbin0 -> 408 bytes
-rw-r--r--Assets/Characters/Tux/Walk1.png.import34
-rw-r--r--Assets/Characters/Tux/Walk2.pngbin0 -> 402 bytes
-rw-r--r--Assets/Characters/Tux/Walk2.png.import34
-rw-r--r--Assets/Characters/Tux/Wall.pngbin0 -> 417 bytes
-rw-r--r--Assets/Characters/Tux/Wall.png.import34
-rwxr-xr-xAssets/Fonts/geometry-soft-pro/CheapProFonts Font License.txt21
-rwxr-xr-xAssets/Fonts/geometry-soft-pro/Geometry_Soft_Pro-Bold_N.otfbin0 -> 54160 bytes
-rwxr-xr-xAssets/Fonts/impact-label/Impact_Label.ttfbin0 -> 139168 bytes
-rwxr-xr-xAssets/Fonts/impact-label/Impact_Label_Reversed.ttfbin0 -> 130584 bytes
-rwxr-xr-xAssets/Fonts/impact-label/Tension Type Font License.txt20
-rwxr-xr-xAssets/Fonts/impact-label/impactlabel.jpgbin0 -> 177166 bytes
-rw-r--r--Assets/Fonts/impact-label/impactlabel.jpg.import34
-rw-r--r--Assets/platforms.tres324
-rw-r--r--Character.gd89
-rw-r--r--Character.tscn84
-rw-r--r--Enum.gd11
-rw-r--r--Enum.tscn6
-rw-r--r--Global.gd60
-rw-r--r--Global.tscn6
-rw-r--r--Levels/Level.gd30
-rw-r--r--Levels/Level_0001.gd5
-rw-r--r--Levels/Level_0001.tscn35
-rw-r--r--Objects/Flag.gd6
-rw-r--r--Objects/Flag.tscn19
-rw-r--r--UI/HUD/Timer.tscn13
-rw-r--r--UI/LevelSelect.gd23
-rw-r--r--UI/LevelSelect.tscn11
-rw-r--r--UI/LevelSelectCell.gd23
-rw-r--r--UI/LevelSelectCell.tscn58
-rw-r--r--default_env.tres7
-rw-r--r--icon.pngbin0 -> 7370 bytes
-rw-r--r--icon.png.import34
-rw-r--r--project.godot46
59 files changed, 1487 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..7cab317
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,12 @@
+# Godot-specific ignores
+.import/
+export.cfg
+export_presets.cfg
+
+# Imported translations (automatically generated from CSV files)
+*.translation
+
+# Mono-specific ignores
+.mono/
+data_*/
+
diff --git a/Assets/2015-02-26 [DB32](Generic Platformer)(Clouds).png b/Assets/2015-02-26 [DB32](Generic Platformer)(Clouds).png
new file mode 100644
index 0000000..7aeb782
--- /dev/null
+++ b/Assets/2015-02-26 [DB32](Generic Platformer)(Clouds).png
Binary files differ
diff --git a/Assets/2015-02-26 [DB32](Generic Platformer)(Clouds).png.import b/Assets/2015-02-26 [DB32](Generic Platformer)(Clouds).png.import
new file mode 100644
index 0000000..2b59f3c
--- /dev/null
+++ b/Assets/2015-02-26 [DB32](Generic Platformer)(Clouds).png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/2015-02-26 [DB32](Generic Platformer)(Clouds).png-40fa4d8e9c89dc9aac0ffca9e4188a70.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/2015-02-26 [DB32](Generic Platformer)(Clouds).png"
+dest_files=[ "res://.import/2015-02-26 [DB32](Generic Platformer)(Clouds).png-40fa4d8e9c89dc9aac0ffca9e4188a70.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/2015-02-26 [DB32](Generic Platformer)(Mountains).png b/Assets/2015-02-26 [DB32](Generic Platformer)(Mountains).png
new file mode 100644
index 0000000..2912e89
--- /dev/null
+++ b/Assets/2015-02-26 [DB32](Generic Platformer)(Mountains).png
Binary files differ
diff --git a/Assets/2015-02-26 [DB32](Generic Platformer)(Mountains).png.import b/Assets/2015-02-26 [DB32](Generic Platformer)(Mountains).png.import
new file mode 100644
index 0000000..ad87f83
--- /dev/null
+++ b/Assets/2015-02-26 [DB32](Generic Platformer)(Mountains).png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/2015-02-26 [DB32](Generic Platformer)(Mountains).png-28144b92a20d497596e8dc16c529b79b.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/2015-02-26 [DB32](Generic Platformer)(Mountains).png"
+dest_files=[ "res://.import/2015-02-26 [DB32](Generic Platformer)(Mountains).png-28144b92a20d497596e8dc16c529b79b.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/2015-02-26 [DB32](Generic Platformer)(Tileset).png b/Assets/2015-02-26 [DB32](Generic Platformer)(Tileset).png
new file mode 100644
index 0000000..c4aef78
--- /dev/null
+++ b/Assets/2015-02-26 [DB32](Generic Platformer)(Tileset).png
Binary files differ
diff --git a/Assets/2015-02-26 [DB32](Generic Platformer)(Tileset).png.import b/Assets/2015-02-26 [DB32](Generic Platformer)(Tileset).png.import
new file mode 100644
index 0000000..e82fbfd
--- /dev/null
+++ b/Assets/2015-02-26 [DB32](Generic Platformer)(Tileset).png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/2015-02-26 [DB32](Generic Platformer)(Tileset).png-5b66202cbad7ae8eca600db0dd4e2c17.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/2015-02-26 [DB32](Generic Platformer)(Tileset).png"
+dest_files=[ "res://.import/2015-02-26 [DB32](Generic Platformer)(Tileset).png-5b66202cbad7ae8eca600db0dd4e2c17.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/Characters/Tux/Back.png b/Assets/Characters/Tux/Back.png
new file mode 100644
index 0000000..9e0aaf4
--- /dev/null
+++ b/Assets/Characters/Tux/Back.png
Binary files differ
diff --git a/Assets/Characters/Tux/Back.png.import b/Assets/Characters/Tux/Back.png.import
new file mode 100644
index 0000000..d04a7f6
--- /dev/null
+++ b/Assets/Characters/Tux/Back.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/Back.png-894f5d165f20795cc17d79509a86726b.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Characters/Tux/Back.png"
+dest_files=[ "res://.import/Back.png-894f5d165f20795cc17d79509a86726b.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/Characters/Tux/Duck.png b/Assets/Characters/Tux/Duck.png
new file mode 100644
index 0000000..6653d0e
--- /dev/null
+++ b/Assets/Characters/Tux/Duck.png
Binary files differ
diff --git a/Assets/Characters/Tux/Duck.png.import b/Assets/Characters/Tux/Duck.png.import
new file mode 100644
index 0000000..0bfef0e
--- /dev/null
+++ b/Assets/Characters/Tux/Duck.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/Duck.png-d9b6b0939ed2c174e51ba35a4477e992.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Characters/Tux/Duck.png"
+dest_files=[ "res://.import/Duck.png-d9b6b0939ed2c174e51ba35a4477e992.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/Characters/Tux/Fall1.png b/Assets/Characters/Tux/Fall1.png
new file mode 100644
index 0000000..8aed14c
--- /dev/null
+++ b/Assets/Characters/Tux/Fall1.png
Binary files differ
diff --git a/Assets/Characters/Tux/Fall1.png.import b/Assets/Characters/Tux/Fall1.png.import
new file mode 100644
index 0000000..bca9193
--- /dev/null
+++ b/Assets/Characters/Tux/Fall1.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/Fall1.png-2df6426526d2c5aa64a7a7c339f5b152.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Characters/Tux/Fall1.png"
+dest_files=[ "res://.import/Fall1.png-2df6426526d2c5aa64a7a7c339f5b152.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/Characters/Tux/Fall1Wings.png b/Assets/Characters/Tux/Fall1Wings.png
new file mode 100644
index 0000000..1af2af5
--- /dev/null
+++ b/Assets/Characters/Tux/Fall1Wings.png
Binary files differ
diff --git a/Assets/Characters/Tux/Fall1Wings.png.import b/Assets/Characters/Tux/Fall1Wings.png.import
new file mode 100644
index 0000000..fa25409
--- /dev/null
+++ b/Assets/Characters/Tux/Fall1Wings.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/Fall1Wings.png-53eb59d039d394e94fb81807128f0f76.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Characters/Tux/Fall1Wings.png"
+dest_files=[ "res://.import/Fall1Wings.png-53eb59d039d394e94fb81807128f0f76.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/Characters/Tux/Fall2Wings.png b/Assets/Characters/Tux/Fall2Wings.png
new file mode 100644
index 0000000..3b25990
--- /dev/null
+++ b/Assets/Characters/Tux/Fall2Wings.png
Binary files differ
diff --git a/Assets/Characters/Tux/Fall2Wings.png.import b/Assets/Characters/Tux/Fall2Wings.png.import
new file mode 100644
index 0000000..ff30c93
--- /dev/null
+++ b/Assets/Characters/Tux/Fall2Wings.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/Fall2Wings.png-f650fa959d0af586766591268253819f.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Characters/Tux/Fall2Wings.png"
+dest_files=[ "res://.import/Fall2Wings.png-f650fa959d0af586766591268253819f.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/Characters/Tux/Front.png b/Assets/Characters/Tux/Front.png
new file mode 100644
index 0000000..c2f9806
--- /dev/null
+++ b/Assets/Characters/Tux/Front.png
Binary files differ
diff --git a/Assets/Characters/Tux/Front.png.import b/Assets/Characters/Tux/Front.png.import
new file mode 100644
index 0000000..62abf0c
--- /dev/null
+++ b/Assets/Characters/Tux/Front.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/Front.png-a6d4ccbcfd2486fec1e20a77f4bd17a5.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Characters/Tux/Front.png"
+dest_files=[ "res://.import/Front.png-a6d4ccbcfd2486fec1e20a77f4bd17a5.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/Characters/Tux/Jump.png b/Assets/Characters/Tux/Jump.png
new file mode 100644
index 0000000..46cb59d
--- /dev/null
+++ b/Assets/Characters/Tux/Jump.png
Binary files differ
diff --git a/Assets/Characters/Tux/Jump.png.import b/Assets/Characters/Tux/Jump.png.import
new file mode 100644
index 0000000..1b70f12
--- /dev/null
+++ b/Assets/Characters/Tux/Jump.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/Jump.png-27f3125ee6ae1ab6b45000ab779a5d2c.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Characters/Tux/Jump.png"
+dest_files=[ "res://.import/Jump.png-27f3125ee6ae1ab6b45000ab779a5d2c.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/Characters/Tux/Slide.png b/Assets/Characters/Tux/Slide.png
new file mode 100644
index 0000000..95c44a8
--- /dev/null
+++ b/Assets/Characters/Tux/Slide.png
Binary files differ
diff --git a/Assets/Characters/Tux/Slide.png.import b/Assets/Characters/Tux/Slide.png.import
new file mode 100644
index 0000000..e91a2d8
--- /dev/null
+++ b/Assets/Characters/Tux/Slide.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/Slide.png-f461cbed3170b8c9b066a53a5f3e822e.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Characters/Tux/Slide.png"
+dest_files=[ "res://.import/Slide.png-f461cbed3170b8c9b066a53a5f3e822e.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/Characters/Tux/Swim.png b/Assets/Characters/Tux/Swim.png
new file mode 100644
index 0000000..d1beca9
--- /dev/null
+++ b/Assets/Characters/Tux/Swim.png
Binary files differ
diff --git a/Assets/Characters/Tux/Swim.png.import b/Assets/Characters/Tux/Swim.png.import
new file mode 100644
index 0000000..7496c84
--- /dev/null
+++ b/Assets/Characters/Tux/Swim.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/Swim.png-46e16632a0141cb1b79cd96f82253d40.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Characters/Tux/Swim.png"
+dest_files=[ "res://.import/Swim.png-46e16632a0141cb1b79cd96f82253d40.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/Characters/Tux/Walk1.png b/Assets/Characters/Tux/Walk1.png
new file mode 100644
index 0000000..9e48f24
--- /dev/null
+++ b/Assets/Characters/Tux/Walk1.png
Binary files differ
diff --git a/Assets/Characters/Tux/Walk1.png.import b/Assets/Characters/Tux/Walk1.png.import
new file mode 100644
index 0000000..07a5a61
--- /dev/null
+++ b/Assets/Characters/Tux/Walk1.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/Walk1.png-a523f8ffd104512e6d9ba0f6a4ba000b.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Characters/Tux/Walk1.png"
+dest_files=[ "res://.import/Walk1.png-a523f8ffd104512e6d9ba0f6a4ba000b.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/Characters/Tux/Walk2.png b/Assets/Characters/Tux/Walk2.png
new file mode 100644
index 0000000..8fd784d
--- /dev/null
+++ b/Assets/Characters/Tux/Walk2.png
Binary files differ
diff --git a/Assets/Characters/Tux/Walk2.png.import b/Assets/Characters/Tux/Walk2.png.import
new file mode 100644
index 0000000..fa724c8
--- /dev/null
+++ b/Assets/Characters/Tux/Walk2.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/Walk2.png-329598a37e4226bd4663c7be3b152560.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Characters/Tux/Walk2.png"
+dest_files=[ "res://.import/Walk2.png-329598a37e4226bd4663c7be3b152560.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/Characters/Tux/Wall.png b/Assets/Characters/Tux/Wall.png
new file mode 100644
index 0000000..ef1339b
--- /dev/null
+++ b/Assets/Characters/Tux/Wall.png
Binary files differ
diff --git a/Assets/Characters/Tux/Wall.png.import b/Assets/Characters/Tux/Wall.png.import
new file mode 100644
index 0000000..213ec91
--- /dev/null
+++ b/Assets/Characters/Tux/Wall.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/Wall.png-d053c84d594242a6d9d7209586824056.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Characters/Tux/Wall.png"
+dest_files=[ "res://.import/Wall.png-d053c84d594242a6d9d7209586824056.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/Fonts/geometry-soft-pro/CheapProFonts Font License.txt b/Assets/Fonts/geometry-soft-pro/CheapProFonts Font License.txt
new file mode 100755
index 0000000..b55818e
--- /dev/null
+++ b/Assets/Fonts/geometry-soft-pro/CheapProFonts Font License.txt
@@ -0,0 +1,21 @@
+CheapProFonts End User License Agreement (EULA)
+
+The font is protected by copyright laws and International copyright treaties, as well as other intellectual property laws and treaties. The font is licensed, not sold.
+
+You may install and use an unlimited number of copies of the font within the same household, company, school or institution.
+
+You may NOT copy or distribute the font outside of the licensed household, company, school or institution. Please ask external contacts who want to use the font to purchase their own license at www.CheapProFonts.com.
+
+You may embed the font in electronic documents, but you may NOT include the font in a software product - this requires a special license.
+
+You may NOT alter the font file in any way. If you want a custom version of the font made please contact www.CheapProFonts.com first.
+
+The font is made to the highest technical standard we know, but we have a disclaimer:
+
+LIMITED WARRANTY NO WARRANTIES. CheapProFonts and its designers expressly disclaims any warranty for the font. The font and any related documentation is provided "as is" without warranty of any kind, either express or implied, including, without limitation, the implied warranties or merchantability, fitness for a particular purpose, or non-infringement. The entire risk arising out of use or performance of the font remains with you.
+
+NO LIABILITY FOR CONSEQUENTIAL DAMAGES. In no event shall CheapProFonts or its designers be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or any other pecuniary loss) arising out of the use of or inability to use this product, even if CheapProFonts or its designers has been advised of the possibility of such damages.
+
+If you have questions about this license and/or font, please consult our FAQ at www.CheapProFonts.com
+
+We grant the rights of use of our font to you in good faith, and request that you promise to adhere to the terms of this license to the best of your ability, and in good faith. \ No newline at end of file
diff --git a/Assets/Fonts/geometry-soft-pro/Geometry_Soft_Pro-Bold_N.otf b/Assets/Fonts/geometry-soft-pro/Geometry_Soft_Pro-Bold_N.otf
new file mode 100755
index 0000000..fddbef2
--- /dev/null
+++ b/Assets/Fonts/geometry-soft-pro/Geometry_Soft_Pro-Bold_N.otf
Binary files differ
diff --git a/Assets/Fonts/impact-label/Impact_Label.ttf b/Assets/Fonts/impact-label/Impact_Label.ttf
new file mode 100755
index 0000000..5bcbf27
--- /dev/null
+++ b/Assets/Fonts/impact-label/Impact_Label.ttf
Binary files differ
diff --git a/Assets/Fonts/impact-label/Impact_Label_Reversed.ttf b/Assets/Fonts/impact-label/Impact_Label_Reversed.ttf
new file mode 100755
index 0000000..ebc8da4
--- /dev/null
+++ b/Assets/Fonts/impact-label/Impact_Label_Reversed.ttf
Binary files differ
diff --git a/Assets/Fonts/impact-label/Tension Type Font License.txt b/Assets/Fonts/impact-label/Tension Type Font License.txt
new file mode 100755
index 0000000..810abd2
--- /dev/null
+++ b/Assets/Fonts/impact-label/Tension Type Font License.txt
@@ -0,0 +1,20 @@
+By downloading and/or installing a Tension Type Free Font you agree to this licence:
+
+This Tension Type Free Font is free to use in any and all of your personal and commercial work.
+
+A donation is much appreciated, but not necessary (donations may be done through PayPal to: mtension@gmail.com). No donation is too small.
+
+You may install and use an unlimited number of copies of a Tension Type Free Font.
+
+Reproduction and Distribution. You may reproduce and distribute an unlimited number of copies of a Tension Type Free Font; provided that each copy shall be a true and complete copy, including all copyright and trademark notices (if applicable), and shall be accompanied by a copy of this text file. Copies of the Font may not be distributed for profit either on a standalone basis or included as part of your own product unless by prior permission of Tension Type.
+
+You may not rename, edit or create any derivative works from a Tension Type Free Font, other than subsetting when embedding them in documents unless you have permission from Tension Type.
+
+Embedding a Tension Type Free Font in a PDF document and web pages is allowed.
+
+Michael Tension and Tension Type are not responsible for any damage resulting from the use of this Tension Type Free Font.
+
+Any questions, or if you wish to share your designs, please contact Michael Tension: mtension@gmail.com
+
+Thanks a ton,
+Michael Tension \ No newline at end of file
diff --git a/Assets/Fonts/impact-label/impactlabel.jpg b/Assets/Fonts/impact-label/impactlabel.jpg
new file mode 100755
index 0000000..fdd6780
--- /dev/null
+++ b/Assets/Fonts/impact-label/impactlabel.jpg
Binary files differ
diff --git a/Assets/Fonts/impact-label/impactlabel.jpg.import b/Assets/Fonts/impact-label/impactlabel.jpg.import
new file mode 100644
index 0000000..6c30d39
--- /dev/null
+++ b/Assets/Fonts/impact-label/impactlabel.jpg.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/impactlabel.jpg-a1bf64a08806f271c109f80004054715.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Assets/Fonts/impact-label/impactlabel.jpg"
+dest_files=[ "res://.import/impactlabel.jpg-a1bf64a08806f271c109f80004054715.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/Assets/platforms.tres b/Assets/platforms.tres
new file mode 100644
index 0000000..c50cab9
--- /dev/null
+++ b/Assets/platforms.tres
@@ -0,0 +1,324 @@
+[gd_resource type="TileSet" load_steps=35 format=2]
+
+[ext_resource path="res://Assets/2015-02-26 [DB32](Generic Platformer)(Tileset).png" type="Texture" id=1]
+
+[sub_resource type="ConvexPolygonShape2D" id=1]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=2]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=3]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=4]
+points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
+
+[sub_resource type="ConvexPolygonShape2D" id=5]
+points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
+
+[sub_resource type="ConvexPolygonShape2D" id=6]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=7]
+points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
+
+[sub_resource type="ConvexPolygonShape2D" id=8]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=9]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=10]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=11]
+points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
+
+[sub_resource type="ConvexPolygonShape2D" id=12]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=13]
+points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
+
+[sub_resource type="ConvexPolygonShape2D" id=14]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=15]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=16]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=17]
+points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
+
+[sub_resource type="ConvexPolygonShape2D" id=18]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=19]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=20]
+points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
+
+[sub_resource type="ConvexPolygonShape2D" id=21]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=22]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=23]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=24]
+points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
+
+[sub_resource type="ConvexPolygonShape2D" id=25]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=26]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=27]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=28]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=29]
+points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
+
+[sub_resource type="ConvexPolygonShape2D" id=30]
+points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
+
+[sub_resource type="ConvexPolygonShape2D" id=31]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=32]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[sub_resource type="ConvexPolygonShape2D" id=33]
+points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
+
+[resource]
+0/name = "2015-02-26 [DB32](Generic Platformer)(Tileset).png 0"
+0/texture = ExtResource( 1 )
+0/tex_offset = Vector2( 0, 0 )
+0/modulate = Color( 1, 1, 1, 1 )
+0/region = Rect2( 0, 0, 16, 16 )
+0/tile_mode = 2
+0/autotile/icon_coordinate = Vector2( 0, 0 )
+0/autotile/tile_size = Vector2( 16, 16 )
+0/autotile/spacing = 0
+0/autotile/occluder_map = [ ]
+0/autotile/navpoly_map = [ ]
+0/autotile/priority_map = [ ]
+0/autotile/z_index_map = [ ]
+0/occluder_offset = Vector2( 0, 0 )
+0/navigation_offset = Vector2( 0, 0 )
+0/shape_offset = Vector2( 0, 0 )
+0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
+0/shape = SubResource( 1 )
+0/shape_one_way = false
+0/shape_one_way_margin = 1.0
+0/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 1 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 1, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 2 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 2, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 3 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 2, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 4 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 2, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 5 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 6, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 6 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 6, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 7 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 7, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 8 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 8, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 9 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 9, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 10 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 9, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 11 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 10, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 12 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 10, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 13 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 11, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 14 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 11, 1 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 15 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 11, 2 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 16 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 11, 2 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 17 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 10, 2 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 18 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 9, 2 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 19 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 9, 2 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 20 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 9, 1 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 21 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 6, 1 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 22 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 7, 1 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 23 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 7, 1 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 24 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 8, 1 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 25 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 8, 2 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 26 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 7, 2 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 27 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 6, 2 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 28 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 6, 2 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 29 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 3, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 30 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 4, 2 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 31 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 3, 2 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 32 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+}, {
+"autotile_coord": Vector2( 5, 2 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 33 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
+} ]
+0/z_index = 0
diff --git a/Character.gd b/Character.gd
new file mode 100644
index 0000000..54bfdc5
--- /dev/null
+++ b/Character.gd
@@ -0,0 +1,89 @@
+extends KinematicBody2D
+
+
+const SPEED = 130
+const JUMPFORCE = -500
+const GRAVITY = 20
+
+var velocity = Vector2()
+var direction = Enum.DIRECTION.RIGHT
+
+var canDoubleJump = false
+var hasPlayedFallStop = false
+
+
+func _physics_process(_delta):
+ if Input.is_action_pressed("ui_left"):
+ velocity.x = -SPEED
+ direction = Enum.DIRECTION.LEFT
+ $Sprite.play("walk")
+ $Sprite.flip_h = true
+
+ if Input.is_action_pressed("ui_accept"):
+ velocity.x *=2
+ $Sprite.play("slide")
+ elif Input.is_action_pressed("ui_right"):
+ velocity.x = SPEED
+ direction = Enum.DIRECTION.RIGHT
+ $Sprite.play("walk")
+ $Sprite.flip_h = false
+
+ if Input.is_action_pressed("ui_accept"):
+ velocity.x *= 2
+ $Sprite.play("slide")
+ else:
+ $Sprite.play("idle")
+
+ # jump and fall animation
+ if not is_on_floor():
+ $Sprite.play("jump")
+ if velocity.y > -JUMPFORCE:
+ $CheckFallLanding.set_enabled(true)
+ $CheckFallStop.set_enabled(true)
+ if $CheckFallLanding.is_colliding():
+ $Sprite.play("fall_stop_landing")
+ elif $CheckFallStop.is_colliding():
+ $Sprite.play("fall_stop")
+ else:
+ $Sprite.play("fall")
+ else:
+ $CheckFallLanding.set_enabled(false)
+ $CheckFallStop.set_enabled(true)
+
+
+ # fall down
+ velocity.y += GRAVITY
+
+ # jump
+ if Input.is_action_just_pressed("ui_up"):
+ if is_on_floor():
+ canDoubleJump = true
+ velocity.y = JUMPFORCE
+ elif not is_on_floor() and not is_on_wall() and canDoubleJump:
+ canDoubleJump = false
+ velocity.y = JUMPFORCE
+
+ if is_on_wall():
+ velocity.y *= 0.8
+ $Sprite.play("wall")
+
+ if Input.is_action_just_pressed("ui_up"):
+ Input.action_release("ui_left")
+ Input.action_release("ui_right")
+ velocity.y = JUMPFORCE * 0.75
+ if direction == Enum.DIRECTION.LEFT:
+ velocity.x = 2000
+ $Sprite.flip_h = false
+ elif direction == Enum.DIRECTION.RIGHT:
+ velocity.x = -2000
+ $Sprite.flip_h = true
+
+ velocity = move_and_slide(velocity, Vector2.UP)
+
+ # stop
+ velocity.x = lerp(velocity.x, 0, 0.7)
+
+
+func check_flag():
+ # $Sprite.play("dance anim")
+ print("FLAG CHECKED")
diff --git a/Character.tscn b/Character.tscn
new file mode 100644
index 0000000..5902649
--- /dev/null
+++ b/Character.tscn
@@ -0,0 +1,84 @@
+[gd_scene load_steps=14 format=2]
+
+[ext_resource path="res://Character.gd" type="Script" id=1]
+[ext_resource path="res://Assets/Characters/Tux/Front.png" type="Texture" id=2]
+[ext_resource path="res://Assets/Characters/Tux/Wall.png" type="Texture" id=3]
+[ext_resource path="res://Assets/Characters/Tux/Back.png" type="Texture" id=4]
+[ext_resource path="res://Assets/Characters/Tux/Walk1.png" type="Texture" id=5]
+[ext_resource path="res://Assets/Characters/Tux/Walk2.png" type="Texture" id=6]
+[ext_resource path="res://Assets/Characters/Tux/Jump.png" type="Texture" id=7]
+[ext_resource path="res://Assets/Characters/Tux/Slide.png" type="Texture" id=8]
+[ext_resource path="res://Assets/Characters/Tux/Fall1.png" type="Texture" id=9]
+[ext_resource path="res://Assets/Characters/Tux/Fall1Wings.png" type="Texture" id=10]
+[ext_resource path="res://Assets/Characters/Tux/Fall2Wings.png" type="Texture" id=11]
+
+[sub_resource type="SpriteFrames" id=1]
+animations = [ {
+"frames": [ ExtResource( 4 ) ],
+"loop": true,
+"name": "back",
+"speed": 5.0
+}, {
+"frames": [ ExtResource( 2 ) ],
+"loop": true,
+"name": "idle",
+"speed": 5.0
+}, {
+"frames": [ ExtResource( 8 ) ],
+"loop": true,
+"name": "slide",
+"speed": 5.0
+}, {
+"frames": [ ExtResource( 5 ), ExtResource( 6 ) ],
+"loop": true,
+"name": "walk",
+"speed": 5.0
+}, {
+"frames": [ ExtResource( 9 ) ],
+"loop": true,
+"name": "fall",
+"speed": 5.0
+}, {
+"frames": [ ExtResource( 3 ) ],
+"loop": true,
+"name": "wall",
+"speed": 5.0
+}, {
+"frames": [ ExtResource( 7 ) ],
+"loop": true,
+"name": "jump",
+"speed": 5.0
+}, {
+"frames": [ ExtResource( 11 ) ],
+"loop": true,
+"name": "fall_stop_landing",
+"speed": 5.0
+}, {
+"frames": [ ExtResource( 10 ) ],
+"loop": false,
+"name": "fall_stop",
+"speed": 5.0
+} ]
+
+[sub_resource type="RectangleShape2D" id=2]
+extents = Vector2( 9.21901, 11.2317 )
+
+[node name="Character" type="KinematicBody2D"]
+script = ExtResource( 1 )
+
+[node name="Sprite" type="AnimatedSprite" parent="."]
+scale = Vector2( 0.7, 0.7 )
+frames = SubResource( 1 )
+animation = "idle"
+playing = true
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
+shape = SubResource( 2 )
+
+[node name="CheckFallStop" type="RayCast2D" parent="."]
+enabled = true
+cast_to = Vector2( 0, 150 )
+
+[node name="CheckFallLanding" type="RayCast2D" parent="."]
+enabled = true
+cast_to = Vector2( 0, 50 )
diff --git a/Enum.gd b/Enum.gd
new file mode 100644
index 0000000..8043f71
--- /dev/null
+++ b/Enum.gd
@@ -0,0 +1,11 @@
+extends Node
+
+
+const DIRECTION = {
+ LEFT = -1,
+ RIGHT = 1,
+}
+
+enum PLAYER {
+ FIRST, SECOND,
+}
diff --git a/Enum.tscn b/Enum.tscn
new file mode 100644
index 0000000..2d64842
--- /dev/null
+++ b/Enum.tscn
@@ -0,0 +1,6 @@
+[gd_scene load_steps=2 format=2]
+
+[ext_resource path="res://Enum.gd" type="Script" id=1]
+
+[node name="Enum" type="Node"]
+script = ExtResource( 1 )
diff --git a/Global.gd b/Global.gd
new file mode 100644
index 0000000..d9414c8
--- /dev/null
+++ b/Global.gd
@@ -0,0 +1,60 @@
+extends Node
+
+
+const Levels = [
+ "Level_0001",
+ "Level_0001",
+ "Level_0001",
+ "Level_0001",
+ "Level_0001",
+ "Level_0001",
+ "Level_0001",
+ "Level_0001",
+ "Level_0001",
+]
+
+var Level_Map = []
+
+
+func _ready():
+ for level in self.Levels:
+ self.Level_Map.push_back({
+ time = 0,
+ cleared_by = -1,
+ meta = {
+ path = "res://Levels/%s.tscn" % level,
+ name = level,
+ },
+ })
+
+
+func change_scene_to_instance(instance):
+ call_deferred("_deferred_change_scene_to_instance", instance)
+func _deferred_change_scene_to_instance(instance):
+ get_tree().current_scene.free()
+ get_tree().get_root().add_child(instance)
+ get_tree().set_current_scene(instance)
+
+
+func get_level(idx):
+ return self.Level_Map[idx]
+
+
+func start_level(idx):
+ var global_level = self.get_level(idx)
+
+ var Level = load(global_level.meta.path)
+ var instance_level = Level.instance()
+ instance_level.idx = idx
+ self.change_scene_to_instance(instance_level)
+
+
+func end_level(instance_level):
+ var global_level = self.get_level(instance_level.idx)
+
+ var time = stepify(instance_level.timer, 0.01)
+ if (global_level.time == 0 or time < global_level.time):
+ global_level.time = time
+ global_level.cleared_by = randi() & 1
+
+ get_tree().change_scene("res://UI/LevelSelect.tscn")
diff --git a/Global.tscn b/Global.tscn
new file mode 100644
index 0000000..ae76f0e
--- /dev/null
+++ b/Global.tscn
@@ -0,0 +1,6 @@
+[gd_scene load_steps=2 format=2]
+
+[ext_resource path="res://Global.gd" type="Script" id=1]
+
+[node name="Global" type="Node"]
+script = ExtResource( 1 )
diff --git a/Levels/Level.gd b/Levels/Level.gd
new file mode 100644
index 0000000..f47f3a0
--- /dev/null
+++ b/Levels/Level.gd
@@ -0,0 +1,30 @@
+extends Node2D
+
+
+export var starting_position = Vector2(0, 0)
+export var camera_limit_left = 0
+export var camera_limit_top = 0
+export var camera_limit_right = 0
+export var camera_limit_bottom = 0
+
+
+var idx = 0
+
+var HUD = CanvasLayer.new()
+
+var timer = 0
+var LabelTimer = preload("res://UI/HUD/Timer.tscn").instance()
+
+
+func _ready():
+ self.HUD.add_child(self.LabelTimer)
+ self.add_child(self.HUD)
+
+
+func _process(delta):
+ self.timer += delta
+ self.LabelTimer.text = "%.2fs" % self.timer
+
+
+func end_level():
+ Global.end_level(self)
diff --git a/Levels/Level_0001.gd b/Levels/Level_0001.gd
new file mode 100644
index 0000000..3fffc27
--- /dev/null
+++ b/Levels/Level_0001.gd
@@ -0,0 +1,5 @@
+extends "res://Levels/Level.gd"
+
+
+func _ready():
+ pass
diff --git a/Levels/Level_0001.tscn b/Levels/Level_0001.tscn
new file mode 100644
index 0000000..bbae830
--- /dev/null
+++ b/Levels/Level_0001.tscn
@@ -0,0 +1,35 @@
+[gd_scene load_steps=5 format=2]
+
+[ext_resource path="res://Assets/platforms.tres" type="TileSet" id=1]
+[ext_resource path="res://Character.tscn" type="PackedScene" id=2]
+[ext_resource path="res://Objects/Flag.tscn" type="PackedScene" id=3]
+[ext_resource path="res://Levels/Level_0001.gd" type="Script" id=4]
+
+[node name="Level_0001" type="Node2D"]
+script = ExtResource( 4 )
+startingPosition = Vector2( 144.471, 115.947 )
+cameraLimitRight = 700
+cameraLimitBottom = 500
+
+[node name="TileMap" type="TileMap" parent="."]
+tile_set = ExtResource( 1 )
+cell_size = Vector2( 16, 16 )
+format = 1
+tile_data = PoolIntArray( 327692, 0, 6, 327693, 0, 8, 393228, 0, 65542, 393229, 0, 65545, 458764, 0, 65542, 458765, 0, 65545, 524295, 0, 0, 524296, 0, 1, 524297, 0, 1, 524298, 0, 1, 524299, 0, 1, 524300, 0, 65542, 524301, 0, 65545, 524302, 0, 1, 524303, 0, 1, 524304, 0, 1, 524305, 0, 1, 524306, 0, 1, 524307, 0, 2, 589836, 0, 131078, 589837, 0, 131080, 720918, 0, 0, 720919, 0, 1, 720920, 0, 1, 720921, 0, 1, 720922, 0, 1, 720923, 0, 1, 720924, 0, 1, 720925, 0, 1, 720926, 0, 1, 720927, 0, 1, 720928, 0, 1, 720929, 0, 1, 720930, 0, 1, 720931, 0, 1, 720932, 0, 1, 720933, 0, 1, 720934, 0, 1, 720935, 0, 1, 720936, 0, 1, 720937, 0, 2, 917518, 0, 6, 917519, 0, 8, 917523, 0, 6, 917524, 0, 8, 983054, 0, 65542, 983055, 0, 65545, 983059, 0, 65542, 983060, 0, 65545, 1048590, 0, 65542, 1048591, 0, 65545, 1048595, 0, 65542, 1048596, 0, 65545, 1114126, 0, 65542, 1114127, 0, 65545, 1114131, 0, 65542, 1114132, 0, 65545, 1179662, 0, 65542, 1179663, 0, 65545, 1179667, 0, 65542, 1179668, 0, 65545, 1245198, 0, 65542, 1245199, 0, 65545, 1245203, 0, 65542, 1245204, 0, 65545, 1310734, 0, 65542, 1310735, 0, 65545, 1310739, 0, 65542, 1310740, 0, 65545, 1376270, 0, 65542, 1376271, 0, 65545, 1376275, 0, 65542, 1376276, 0, 65545, 1441806, 0, 65542, 1441807, 0, 65545, 1441811, 0, 65542, 1441812, 0, 65545, 1507342, 0, 65542, 1507343, 0, 65545, 1507347, 0, 65542, 1507348, 0, 65545, 1572878, 0, 65542, 1572879, 0, 65545, 1572883, 0, 65542, 1572884, 0, 65545, 1638414, 0, 65542, 1638415, 0, 65545, 1638419, 0, 65542, 1638420, 0, 65545, 1703950, 0, 131078, 1703951, 0, 131080, 1703955, 0, 131078, 1703956, 0, 131080, 1900544, 0, 0, 1900545, 0, 1, 1900546, 0, 1, 1900547, 0, 1, 1900548, 0, 1, 1900549, 0, 1, 1900550, 0, 1, 1900551, 0, 1, 1900552, 0, 1, 1900553, 0, 1, 1900554, 0, 1, 1900555, 0, 1, 1900556, 0, 1, 1900557, 0, 1, 1900558, 0, 1, 1900559, 0, 1, 1900560, 0, 1, 1900561, 0, 1, 1900562, 0, 1, 1900563, 0, 1, 1900564, 0, 1, 1900565, 0, 2 )
+
+[node name="Flag" parent="." instance=ExtResource( 3 )]
+position = Vector2( 602.469, 111.673 )
+
+[node name="Character" parent="." instance=ExtResource( 2 )]
+position = Vector2( 144.471, 115.947 )
+
+[node name="Camera2D" type="Camera2D" parent="Character"]
+current = true
+zoom = Vector2( 0.5, 0.5 )
+limit_left = 0
+limit_top = 0
+limit_right = 700
+limit_bottom = 500
+drag_margin_h_enabled = true
+drag_margin_v_enabled = true
+editor_draw_limits = true
diff --git a/Objects/Flag.gd b/Objects/Flag.gd
new file mode 100644
index 0000000..bdb2237
--- /dev/null
+++ b/Objects/Flag.gd
@@ -0,0 +1,6 @@
+extends Area2D
+
+
+func _on_Flag_body_entered(body):
+ body.check_flag()
+ get_parent().end_level()
diff --git a/Objects/Flag.tscn b/Objects/Flag.tscn
new file mode 100644
index 0000000..0cc1c35
--- /dev/null
+++ b/Objects/Flag.tscn
@@ -0,0 +1,19 @@
+[gd_scene load_steps=4 format=2]
+
+[ext_resource path="res://icon.png" type="Texture" id=1]
+[ext_resource path="res://Objects/Flag.gd" type="Script" id=2]
+
+[sub_resource type="RectangleShape2D" id=1]
+extents = Vector2( 64.2993, 64.1957 )
+
+[node name="Flag" type="Area2D"]
+script = ExtResource( 2 )
+
+[node name="Sprite" type="Sprite" parent="."]
+scale = Vector2( 0.25, 0.25 )
+texture = ExtResource( 1 )
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
+scale = Vector2( 0.25, 0.25 )
+shape = SubResource( 1 )
+[connection signal="body_entered" from="." to="." method="_on_Flag_body_entered"]
diff --git a/UI/HUD/Timer.tscn b/UI/HUD/Timer.tscn
new file mode 100644
index 0000000..93a3512
--- /dev/null
+++ b/UI/HUD/Timer.tscn
@@ -0,0 +1,13 @@
+[gd_scene format=2]
+
+[node name="Timer" type="Label"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+margin_left = 10.0
+margin_top = 10.0
+margin_right = 10.0
+margin_bottom = 10.0
+text = "0.00s"
+__meta__ = {
+"_edit_use_anchors_": false
+}
diff --git a/UI/LevelSelect.gd b/UI/LevelSelect.gd
new file mode 100644
index 0000000..c173a7b
--- /dev/null
+++ b/UI/LevelSelect.gd
@@ -0,0 +1,23 @@
+extends Control
+
+
+func _ready():
+ var Cell = load("res://UI/LevelSelectCell.tscn")
+
+ for idx in range(9):
+ var level = Global.get_level(idx)
+ var cell = Cell.instance()
+ cell.level_idx = idx
+ cell.set_rect_size(1024/3, 600/3)
+ var column = idx % 3
+ var row = idx / 3
+ cell.rect_position.x = cell.rect_size.x*column
+ cell.rect_position.y = cell.rect_size.y*row
+ cell.connect("gui_input", self, '_button_pressed', [idx])
+ self.add_child(cell)
+
+
+func _button_pressed(event, idx):
+ if event is InputEventMouseButton or event is InputEventKey:
+ if event.pressed:
+ Global.start_level(idx)
diff --git a/UI/LevelSelect.tscn b/UI/LevelSelect.tscn
new file mode 100644
index 0000000..ef31cde
--- /dev/null
+++ b/UI/LevelSelect.tscn
@@ -0,0 +1,11 @@
+[gd_scene load_steps=2 format=2]
+
+[ext_resource path="res://UI/LevelSelect.gd" type="Script" id=1]
+
+[node name="LevelSelect" type="Control"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+script = ExtResource( 1 )
+__meta__ = {
+"_edit_use_anchors_": false
+}
diff --git a/UI/LevelSelectCell.gd b/UI/LevelSelectCell.gd
new file mode 100644
index 0000000..1bd1366
--- /dev/null
+++ b/UI/LevelSelectCell.gd
@@ -0,0 +1,23 @@
+extends Panel
+
+
+var level_idx = 0
+
+
+func _ready():
+ var level = Global.get_level(self.level_idx)
+
+ $ClearMark.text = ""
+ if level.cleared_by == Enum.PLAYER.FIRST:
+ $ClearMark.text = "X"
+ elif level.cleared_by == Enum.PLAYER.SECOND:
+ $ClearMark.text = "O"
+
+ $Time.text = String(level.time) + "s"
+
+
+func set_rect_size(x, y):
+ self.rect_size.x = x
+ self.rect_size.y = y
+ $ClearMark.rect_size.x = x
+ $ClearMark.rect_size.y = y
diff --git a/UI/LevelSelectCell.tscn b/UI/LevelSelectCell.tscn
new file mode 100644
index 0000000..968e913
--- /dev/null
+++ b/UI/LevelSelectCell.tscn
@@ -0,0 +1,58 @@
+[gd_scene load_steps=7 format=2]
+
+[ext_resource path="res://UI/LevelSelectCell.gd" type="Script" id=1]
+[ext_resource path="res://Assets/Fonts/geometry-soft-pro/Geometry_Soft_Pro-Bold_N.otf" type="DynamicFontData" id=2]
+[ext_resource path="res://Assets/Fonts/impact-label/Impact_Label_Reversed.ttf" type="DynamicFontData" id=3]
+
+[sub_resource type="StyleBoxFlat" id=1]
+bg_color = Color( 0.133333, 0.372549, 0.188235, 1 )
+border_width_left = 1
+border_width_top = 1
+border_width_right = 1
+border_width_bottom = 1
+
+[sub_resource type="DynamicFont" id=2]
+size = 120
+font_data = ExtResource( 3 )
+
+[sub_resource type="DynamicFont" id=3]
+size = 20
+outline_size = 2
+outline_color = Color( 0, 0, 0, 1 )
+font_data = ExtResource( 2 )
+
+[node name="LevelSelectCell" type="Panel"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+margin_right = -683.0
+margin_bottom = -400.0
+hint_tooltip = "Select Level"
+custom_styles/panel = SubResource( 1 )
+script = ExtResource( 1 )
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="ClearMark" type="Label" parent="."]
+margin_top = 1.0
+margin_right = 341.0
+margin_bottom = 201.0
+custom_fonts/font = SubResource( 2 )
+text = "X"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="Time" type="Label" parent="."]
+margin_left = 7.0
+margin_top = 3.0
+margin_right = 54.0
+margin_bottom = 24.0
+custom_fonts/font = SubResource( 3 )
+text = "0.00s"
+valign = 1
+__meta__ = {
+"_edit_use_anchors_": false
+}
diff --git a/default_env.tres b/default_env.tres
new file mode 100644
index 0000000..20207a4
--- /dev/null
+++ b/default_env.tres
@@ -0,0 +1,7 @@
+[gd_resource type="Environment" load_steps=2 format=2]
+
+[sub_resource type="ProceduralSky" id=1]
+
+[resource]
+background_mode = 2
+background_sky = SubResource( 1 )
diff --git a/icon.png b/icon.png
new file mode 100644
index 0000000..5f7f827
--- /dev/null
+++ b/icon.png
Binary files differ
diff --git a/icon.png.import b/icon.png.import
new file mode 100644
index 0000000..96cbf46
--- /dev/null
+++ b/icon.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://icon.png"
+dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0
diff --git a/project.godot b/project.godot
new file mode 100644
index 0000000..19ec07a
--- /dev/null
+++ b/project.godot
@@ -0,0 +1,46 @@
+; 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=4
+
+_global_script_classes=[ ]
+_global_script_class_icons={
+
+}
+
+[application]
+
+config/name="TicTacTux"
+config/icon="res://icon.png"
+
+[autoload]
+
+Global="*res://Global.gd"
+Enum="*res://Enum.gd"
+
+[input]
+
+ui_accept={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777221,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777222,"unicode":0,"echo":false,"script":null)
+, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":67,"unicode":0,"echo":false,"script":null)
+ ]
+}
+ui_up={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null)
+, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null)
+ ]
+}
+
+[rendering]
+
+environment/default_environment="res://default_env.tres"