summaryrefslogtreecommitdiff
path: root/demos/2d/platformer
diff options
context:
space:
mode:
Diffstat (limited to 'demos/2d/platformer')
-rw-r--r--demos/2d/platformer/bullet.gd16
-rw-r--r--demos/2d/platformer/bullet.pngbin319 -> 0 bytes
-rw-r--r--demos/2d/platformer/bullet.tscn115
-rw-r--r--demos/2d/platformer/coin.gd19
-rw-r--r--demos/2d/platformer/coin.pngbin3133 -> 0 bytes
-rw-r--r--demos/2d/platformer/coin.tscn146
-rw-r--r--demos/2d/platformer/enemy.gd83
-rw-r--r--demos/2d/platformer/enemy.pngbin3552 -> 0 bytes
-rw-r--r--demos/2d/platformer/enemy.tscn206
-rw-r--r--demos/2d/platformer/engine.cfg42
-rw-r--r--demos/2d/platformer/icon.pngbin1002 -> 0 bytes
-rw-r--r--demos/2d/platformer/moving_platform.gd20
-rw-r--r--demos/2d/platformer/moving_platform.pngbin2143 -> 0 bytes
-rw-r--r--demos/2d/platformer/moving_platform.tscn52
-rw-r--r--demos/2d/platformer/music.oggbin1692019 -> 0 bytes
-rw-r--r--demos/2d/platformer/one_way_platform.pngbin2287 -> 0 bytes
-rw-r--r--demos/2d/platformer/one_way_platform.tscn36
-rw-r--r--demos/2d/platformer/osb_fire.pngbin2233 -> 0 bytes
-rw-r--r--demos/2d/platformer/osb_jump.pngbin1374 -> 0 bytes
-rw-r--r--demos/2d/platformer/osb_left.pngbin1366 -> 0 bytes
-rw-r--r--demos/2d/platformer/osb_right.pngbin1368 -> 0 bytes
-rw-r--r--demos/2d/platformer/parallax_bg.tscn101
-rw-r--r--demos/2d/platformer/plank.pngbin270 -> 0 bytes
-rw-r--r--demos/2d/platformer/plankpin.pngbin253 -> 0 bytes
-rw-r--r--demos/2d/platformer/player.gd232
-rw-r--r--demos/2d/platformer/player.tscn330
-rw-r--r--demos/2d/platformer/robot_demo.pngbin12399 -> 0 bytes
-rw-r--r--demos/2d/platformer/scroll_bg_cloud_1.pngbin531 -> 0 bytes
-rw-r--r--demos/2d/platformer/scroll_bg_cloud_2.pngbin719 -> 0 bytes
-rw-r--r--demos/2d/platformer/scroll_bg_cloud_3.pngbin394 -> 0 bytes
-rw-r--r--demos/2d/platformer/scroll_bg_fg_1.pngbin12137 -> 0 bytes
-rw-r--r--demos/2d/platformer/scroll_bg_fg_2.pngbin13073 -> 0 bytes
-rw-r--r--demos/2d/platformer/scroll_bg_sky.pngbin3023 -> 0 bytes
-rw-r--r--demos/2d/platformer/seesaw.tscn60
-rw-r--r--demos/2d/platformer/sound_coin.wavbin63952 -> 0 bytes
-rw-r--r--demos/2d/platformer/sound_explode.wavbin75832 -> 0 bytes
-rw-r--r--demos/2d/platformer/sound_hit.wavbin71932 -> 0 bytes
-rw-r--r--demos/2d/platformer/sound_jump.wavbin82076 -> 0 bytes
-rw-r--r--demos/2d/platformer/sound_shoot.wavbin78888 -> 0 bytes
-rw-r--r--demos/2d/platformer/stage.tscn352
-rw-r--r--demos/2d/platformer/tiles_demo.pngbin10066 -> 0 bytes
-rw-r--r--demos/2d/platformer/tiles_demo.png.flags1
-rw-r--r--demos/2d/platformer/tileset.tres195
-rw-r--r--demos/2d/platformer/tileset_edit.tscn432
44 files changed, 0 insertions, 2438 deletions
diff --git a/demos/2d/platformer/bullet.gd b/demos/2d/platformer/bullet.gd
deleted file mode 100644
index 3aee69714e..0000000000
--- a/demos/2d/platformer/bullet.gd
+++ /dev/null
@@ -1,16 +0,0 @@
-
-extends RigidBody2D
-
-# Member variables
-var disabled = false
-
-
-func disable():
- if (disabled):
- return
- get_node("anim").play("shutdown")
- disabled = true
-
-
-func _ready():
- get_node("Timer").start()
diff --git a/demos/2d/platformer/bullet.png b/demos/2d/platformer/bullet.png
deleted file mode 100644
index 5c722219ec..0000000000
--- a/demos/2d/platformer/bullet.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/bullet.tscn b/demos/2d/platformer/bullet.tscn
deleted file mode 100644
index 78f566c3b3..0000000000
--- a/demos/2d/platformer/bullet.tscn
+++ /dev/null
@@ -1,115 +0,0 @@
-[gd_scene load_steps=6 format=1]
-
-[ext_resource path="res://bullet.gd" type="Script" id=1]
-[ext_resource path="res://bullet.png" type="Texture" id=2]
-
-[sub_resource type="CircleShape2D" id=1]
-
-custom_solver_bias = 0.0
-radius = 10.0
-
-[sub_resource type="ColorRamp" id=2]
-
-offsets = FloatArray( 0, 1 )
-colors = ColorArray( 1, 1, 1, 1, 1, 0, 0, 0 )
-
-[sub_resource type="Animation" id=3]
-
-length = 1.5
-loop = false
-step = 0.0
-tracks/0/type = "value"
-tracks/0/path = NodePath("particles:config/emitting")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ false ] }
-tracks/1/type = "value"
-tracks/1/path = NodePath("sprite:visibility/self_opacity")
-tracks/1/interp = 1
-tracks/1/keys = { "cont":true, "times":FloatArray( 0, 1.00394 ), "transitions":FloatArray( 1, 1 ), "values":[ 1.0, 0.0 ] }
-tracks/2/type = "method"
-tracks/2/path = NodePath(".")
-tracks/2/interp = 1
-tracks/2/keys = { "times":FloatArray( 1.31 ), "transitions":FloatArray( 1 ), "values":[ { "args":[ ], "method":"queue_free" } ] }
-
-[node name="bullet" type="RigidBody2D"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 1 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-mode = 0
-mass = 1.0
-friction = 1.0
-bounce = 0.0
-gravity_scale = 1.0
-custom_integrator = false
-continuous_cd = 2
-contacts_reported = 0
-contact_monitor = false
-sleeping = false
-can_sleep = true
-velocity/linear = Vector2( 0, 0 )
-velocity/angular = 0.0
-damp_override/linear = -1.0
-damp_override/angular = -1.0
-script/script = ExtResource( 1 )
-
-[node name="particles" type="Particles2D" parent="."]
-
-visibility/opacity = 0.559322
-visibility/blend_mode = 1
-config/amount = 24
-config/lifetime = 0.1
-config/local_space = false
-config/texture = ExtResource( 2 )
-params/direction = 0.0
-params/spread = 10.0
-params/linear_velocity = 0.0
-params/spin_velocity = 0.0
-params/orbit_velocity = 0.0
-params/gravity_direction = 0.0
-params/gravity_strength = 0.0
-params/radial_accel = 0.0
-params/tangential_accel = 0.0
-params/damping = 0.0
-params/initial_angle = 0.0
-params/initial_size = 1.0
-params/final_size = 0.0
-params/hue_variation = 0.0
-params/anim_speed_scale = 1.0
-params/anim_initial_pos = 0.0
-color/color_ramp = SubResource( 2 )
-
-[node name="sprite" type="Sprite" parent="."]
-
-texture = ExtResource( 2 )
-
-[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
-
-shape = SubResource( 1 )
-trigger = false
-_update_shape_index = -1
-
-[node name="Timer" type="Timer" parent="."]
-
-process_mode = 1
-wait_time = 1.0
-one_shot = true
-autostart = false
-
-[node name="anim" type="AnimationPlayer" parent="."]
-
-playback/process_mode = 1
-playback/default_blend_time = 0.0
-root/root = NodePath("..")
-anims/shutdown = SubResource( 3 )
-playback/active = true
-playback/speed = 1.0
-blend_times = [ ]
-autoplay = ""
-
-[connection signal="timeout" from="Timer" to="." method="disable"]
-
-
diff --git a/demos/2d/platformer/coin.gd b/demos/2d/platformer/coin.gd
deleted file mode 100644
index 1118732707..0000000000
--- a/demos/2d/platformer/coin.gd
+++ /dev/null
@@ -1,19 +0,0 @@
-
-extends Area2D
-
-# Member variables
-var taken = false
-
-
-func _on_body_enter( body ):
- if (not taken and body extends preload("res://player.gd")):
- get_node("anim").play("taken")
- taken = true
-
-
-func _on_coin_area_enter(area):
- pass # replace with function body
-
-
-func _on_coin_area_enter_shape(area_id, area, area_shape, area_shape):
- pass # replace with function body
diff --git a/demos/2d/platformer/coin.png b/demos/2d/platformer/coin.png
deleted file mode 100644
index c35c5ebf28..0000000000
--- a/demos/2d/platformer/coin.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/coin.tscn b/demos/2d/platformer/coin.tscn
deleted file mode 100644
index 76730c83d4..0000000000
--- a/demos/2d/platformer/coin.tscn
+++ /dev/null
@@ -1,146 +0,0 @@
-[gd_scene load_steps=10 format=1]
-
-[ext_resource path="res://coin.gd" type="Script" id=1]
-[ext_resource path="res://coin.png" type="Texture" id=2]
-[ext_resource path="res://sound_coin.wav" type="Sample" id=3]
-[ext_resource path="res://bullet.png" type="Texture" id=4]
-
-[sub_resource type="CircleShape2D" id=1]
-
-custom_solver_bias = 0.0
-radius = 10.0
-
-[sub_resource type="Animation" id=2]
-
-resource/name = "spin"
-length = 1.5
-loop = true
-step = 0.25
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:frame")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.25, 0.5, 0.75, 1, 1.25, 1.5 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1 ), "values":[ 0, 1, 2, 3, 2, 1, 0 ] }
-
-[sub_resource type="Animation" id=3]
-
-length = 8.0
-loop = false
-step = 0.0
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:frame")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":true, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 0 ] }
-tracks/1/type = "value"
-tracks/1/path = NodePath("sound:play/play")
-tracks/1/interp = 1
-tracks/1/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ "coin" ] }
-tracks/2/type = "value"
-tracks/2/path = NodePath("particles:visibility/self_opacity")
-tracks/2/interp = 1
-tracks/2/keys = { "cont":true, "times":FloatArray( 0, 1.66 ), "transitions":FloatArray( 1, 1 ), "values":[ 1.0, 0.0 ] }
-tracks/3/type = "value"
-tracks/3/path = NodePath("sprite:visibility/self_opacity")
-tracks/3/interp = 1
-tracks/3/keys = { "cont":true, "times":FloatArray( 0, 0.4 ), "transitions":FloatArray( 1, 1 ), "values":[ 1.0, 0.0 ] }
-tracks/4/type = "value"
-tracks/4/path = NodePath("particles:config/emitting")
-tracks/4/interp = 1
-tracks/4/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ true ] }
-tracks/5/type = "method"
-tracks/5/path = NodePath(".")
-tracks/5/interp = 1
-tracks/5/keys = { "times":FloatArray( 2.7 ), "transitions":FloatArray( 1 ), "values":[ { "args":[ ], "method":"queue_free" } ] }
-
-[sub_resource type="SampleLibrary" id=4]
-
-samples/coin = { "db":0.0, "pitch":1.0, "sample":ExtResource( 3 ) }
-
-[sub_resource type="ColorRamp" id=5]
-
-offsets = FloatArray( 0, 1 )
-colors = ColorArray( 1, 1, 1, 1, 0, 0, 0, 1 )
-
-[node name="coin" type="Area2D"]
-
-input/pickable = true
-shapes/0/shape = SubResource( 1 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-gravity_vec = Vector2( 0, 1 )
-gravity = 98.0
-linear_damp = 0.1
-angular_damp = 1.0
-script/script = ExtResource( 1 )
-
-[node name="sprite" type="Sprite" parent="."]
-
-texture = ExtResource( 2 )
-hframes = 4
-
-[node name="anim" type="AnimationPlayer" parent="."]
-
-playback/process_mode = 1
-playback/default_blend_time = 0.0
-root/root = NodePath("..")
-anims/spin = SubResource( 2 )
-anims/taken = SubResource( 3 )
-playback/active = true
-playback/speed = 3.0
-blend_times = [ ]
-autoplay = "spin"
-
-[node name="collision" type="CollisionShape2D" parent="."]
-
-shape = SubResource( 1 )
-trigger = false
-_update_shape_index = -1
-
-[node name="sound" type="SamplePlayer2D" parent="."]
-
-params/volume_db = 0.0
-params/pitch_scale = 1.0
-params/attenuation/min_distance = 1.0
-params/attenuation/max_distance = 2048.0
-params/attenuation/distance_exp = 1.0
-config/polyphony = 1
-config/samples = SubResource( 4 )
-config/pitch_random = 0.0
-
-[node name="particles" type="Particles2D" parent="."]
-
-visibility/blend_mode = 1
-config/amount = 8
-config/lifetime = 0.4
-config/emitting = false
-config/half_extents = Vector2( 5, 5 )
-config/texture = ExtResource( 4 )
-params/direction = 0.0
-params/spread = 10.0
-params/linear_velocity = 0.0
-params/spin_velocity = 0.0
-params/orbit_velocity = 0.0
-params/gravity_direction = 0.0
-params/gravity_strength = 0.0
-params/radial_accel = 0.0
-params/tangential_accel = 0.0
-params/damping = 0.0
-params/initial_angle = 0.0
-params/initial_size = 0.2
-params/final_size = 0.2
-params/hue_variation = 0.0
-params/anim_speed_scale = 1.0
-params/anim_initial_pos = 0.0
-color/color_ramp = SubResource( 5 )
-
-[node name="enabler" type="VisibilityEnabler2D" parent="."]
-
-rect = Rect2( -10, -10, 20, 20 )
-enabler/pause_animations = true
-enabler/freeze_bodies = true
-enabler/pause_particles = true
-enabler/process_parent = false
-enabler/fixed_process_parent = false
-
-[connection signal="body_enter" from="." to="." method="_on_body_enter"]
-
-
diff --git a/demos/2d/platformer/enemy.gd b/demos/2d/platformer/enemy.gd
deleted file mode 100644
index 5a4d8af579..0000000000
--- a/demos/2d/platformer/enemy.gd
+++ /dev/null
@@ -1,83 +0,0 @@
-
-extends RigidBody2D
-
-# Member variables
-const STATE_WALKING = 0
-const STATE_DYING = 1
-
-var state = STATE_WALKING
-
-var direction = -1
-var anim = ""
-
-var rc_left = null
-var rc_right = null
-var WALK_SPEED = 50
-
-var bullet_class = preload("res://bullet.gd")
-
-
-func _die():
- queue_free()
-
-
-func _pre_explode():
- # Stay there
- clear_shapes()
- set_mode(MODE_STATIC)
- get_node("sound").play("explode")
-
-
-func _integrate_forces(s):
- var lv = s.get_linear_velocity()
- var new_anim = anim
-
- if (state == STATE_DYING):
- new_anim = "explode"
- elif (state == STATE_WALKING):
- new_anim = "walk"
-
- var wall_side = 0.0
-
- for i in range(s.get_contact_count()):
- var cc = s.get_contact_collider_object(i)
- var dp = s.get_contact_local_normal(i)
-
- if (cc):
- if (cc extends bullet_class and not cc.disabled):
- set_mode(MODE_RIGID)
- state = STATE_DYING
- #lv = s.get_contact_local_normal(i)*400
- s.set_angular_velocity(sign(dp.x)*33.0)
- set_friction(1)
- cc.disable()
- get_node("sound").play("hit")
- break
-
- if (dp.x > 0.9):
- wall_side = 1.0
- elif (dp.x < -0.9):
- wall_side = -1.0
-
- if (wall_side != 0 and wall_side != direction):
- direction = -direction
- get_node("sprite").set_scale(Vector2(-direction, 1))
- if (direction < 0 and not rc_left.is_colliding() and rc_right.is_colliding()):
- direction = -direction
- get_node("sprite").set_scale(Vector2(-direction, 1))
- elif (direction > 0 and not rc_right.is_colliding() and rc_left.is_colliding()):
- direction = -direction
- get_node("sprite").set_scale(Vector2(-direction, 1))
-
- lv.x = direction*WALK_SPEED
-
- if(anim != new_anim):
- anim = new_anim
- get_node("anim").play(anim)
-
- s.set_linear_velocity(lv)
-
-
-func _ready():
- rc_left = get_node("raycast_left")
- rc_right = get_node("raycast_right")
diff --git a/demos/2d/platformer/enemy.png b/demos/2d/platformer/enemy.png
deleted file mode 100644
index 37fe468b0f..0000000000
--- a/demos/2d/platformer/enemy.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/enemy.tscn b/demos/2d/platformer/enemy.tscn
deleted file mode 100644
index b01bd9fcf6..0000000000
--- a/demos/2d/platformer/enemy.tscn
+++ /dev/null
@@ -1,206 +0,0 @@
-[gd_scene load_steps=12 format=1]
-
-[ext_resource path="res://enemy.gd" type="Script" id=1]
-[ext_resource path="res://enemy.png" type="Texture" id=2]
-[ext_resource path="res://bullet.png" type="Texture" id=3]
-[ext_resource path="res://sound_explode.wav" type="Sample" id=4]
-[ext_resource path="res://sound_hit.wav" type="Sample" id=5]
-
-[sub_resource type="CircleShape2D" id=1]
-
-custom_solver_bias = 0.0
-radius = 14.0
-
-[sub_resource type="Animation" id=2]
-
-resource/name = "explode"
-length = 6.0
-loop = false
-step = 0.0
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:visibility/self_opacity")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":true, "times":FloatArray( 3.58422, 4.33851 ), "transitions":FloatArray( 1, 1 ), "values":[ 1.0, 0.0 ] }
-tracks/1/type = "value"
-tracks/1/path = NodePath("sprite:frame")
-tracks/1/interp = 1
-tracks/1/keys = { "cont":true, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 4 ] }
-tracks/2/type = "value"
-tracks/2/path = NodePath("Particles2D:config/emitting")
-tracks/2/interp = 1
-tracks/2/keys = { "cont":false, "times":FloatArray( 3.47394 ), "transitions":FloatArray( 1 ), "values":[ true ] }
-tracks/3/type = "method"
-tracks/3/path = NodePath(".")
-tracks/3/interp = 1
-tracks/3/keys = { "times":FloatArray( 3.20357, 5.07305 ), "transitions":FloatArray( 1, 1 ), "values":[ { "args":[ ], "method":"_pre_explode" }, { "args":[ ], "method":"_die" } ] }
-
-[sub_resource type="Animation" id=3]
-
-length = 6.75
-loop = true
-step = 0.25
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:frame")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.75, 1.5, 2.25, 3, 3.75, 4.5, 5.25, 6, 6.75 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), "values":[ 5, 6, 5, 6, 5, 6, 7, 6, 7, 5 ] }
-
-[sub_resource type="Animation" id=4]
-
-resource/name = "walk"
-length = 1.25
-loop = true
-step = 0.25
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:frame")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1 ), "values":[ 0, 1, 2, 3, 4, 0 ] }
-
-[sub_resource type="ColorRamp" id=5]
-
-offsets = FloatArray( 0, 1 )
-colors = ColorArray( 1, 0.884956, 0.823009, 1, 0.768627, 0.389381, 0, 0 )
-
-[sub_resource type="SampleLibrary" id=6]
-
-samples/explode = { "db":0.0, "pitch":1.0, "sample":ExtResource( 4 ) }
-samples/hit = { "db":0.0, "pitch":1.0, "sample":ExtResource( 5 ) }
-
-[node name="enemy" type="RigidBody2D"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 1 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, -1.08072, -2.16144 )
-shapes/0/trigger = false
-shapes/1/shape = SubResource( 1 )
-shapes/1/transform = Matrix32( 1, 0, 0, 1, 6.48431, 3.24216 )
-shapes/1/trigger = false
-shapes/2/shape = SubResource( 1 )
-shapes/2/transform = Matrix32( 1, 0, 0, 1, -12.495, 3.53415 )
-shapes/2/trigger = false
-collision/layers = 1
-collision/mask = 1
-mode = 2
-mass = 1.0
-friction = 0.0
-bounce = 0.0
-gravity_scale = 1.0
-custom_integrator = false
-continuous_cd = 0
-contacts_reported = 4
-contact_monitor = false
-sleeping = false
-can_sleep = true
-velocity/linear = Vector2( 0, 0 )
-velocity/angular = 0.0
-damp_override/linear = -1.0
-damp_override/angular = -1.0
-script/script = ExtResource( 1 )
-
-[node name="enabler" type="VisibilityEnabler2D" parent="."]
-
-transform/pos = Vector2( 16.2569, 11.0034 )
-transform/scale = Vector2( 23.5056, 10.8629 )
-rect = Rect2( -10, -10, 20, 20 )
-enabler/pause_animations = true
-enabler/freeze_bodies = true
-enabler/pause_particles = true
-enabler/process_parent = false
-enabler/fixed_process_parent = false
-
-[node name="anim" type="AnimationPlayer" parent="."]
-
-playback/process_mode = 1
-playback/default_blend_time = 0.0
-root/root = NodePath("..")
-anims/explode = SubResource( 2 )
-anims/idle = SubResource( 3 )
-anims/walk = SubResource( 4 )
-playback/active = true
-playback/speed = 3.0
-blend_times = [ ]
-autoplay = ""
-
-[node name="sprite" type="Sprite" parent="."]
-
-texture = ExtResource( 2 )
-hframes = 8
-frame = 4
-
-[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
-
-transform/pos = Vector2( -1.08072, -2.16144 )
-shape = SubResource( 1 )
-trigger = false
-_update_shape_index = -1
-
-[node name="CollisionShape2D 2" type="CollisionShape2D" parent="."]
-
-transform/pos = Vector2( 6.48431, 3.24216 )
-shape = SubResource( 1 )
-trigger = false
-_update_shape_index = -1
-
-[node name="CollisionShape2D 3" type="CollisionShape2D" parent="."]
-
-transform/pos = Vector2( -12.495, 3.53415 )
-shape = SubResource( 1 )
-trigger = false
-_update_shape_index = -1
-
-[node name="raycast_left" type="RayCast2D" parent="."]
-
-transform/pos = Vector2( -33.2868, -9.34363 )
-enabled = true
-cast_to = Vector2( 0, 45 )
-layer_mask = 1
-type_mask = 15
-
-[node name="raycast_right" type="RayCast2D" parent="."]
-
-transform/pos = Vector2( 29.1987, -9.34363 )
-enabled = true
-cast_to = Vector2( 0, 45 )
-layer_mask = 1
-type_mask = 15
-
-[node name="Particles2D" type="Particles2D" parent="."]
-
-visibility/self_opacity = 0.121212
-visibility/blend_mode = 1
-config/amount = 32
-config/lifetime = 0.5
-config/emit_timeout = 0.5
-config/emitting = false
-config/explosiveness = 0.1
-config/texture = ExtResource( 3 )
-params/direction = 0.0
-params/spread = 180.0
-params/linear_velocity = 90.0
-params/spin_velocity = 2.0
-params/orbit_velocity = 0.0
-params/gravity_direction = 0.0
-params/gravity_strength = 9.8
-params/radial_accel = 0.0
-params/tangential_accel = 0.0
-params/damping = 0.0
-params/initial_angle = 0.0
-params/initial_size = 2.0
-params/final_size = 3.0
-params/hue_variation = 0.0
-params/anim_speed_scale = 1.0
-params/anim_initial_pos = 0.0
-randomness/spin_velocity = 1.0
-color/color_ramp = SubResource( 5 )
-
-[node name="sound" type="SamplePlayer2D" parent="."]
-
-params/volume_db = 0.0
-params/pitch_scale = 1.0
-params/attenuation/min_distance = 1.0
-params/attenuation/max_distance = 2048.0
-params/attenuation/distance_exp = 1.0
-config/polyphony = 3
-config/samples = SubResource( 6 )
-config/pitch_random = 0.0
-
-
diff --git a/demos/2d/platformer/engine.cfg b/demos/2d/platformer/engine.cfg
deleted file mode 100644
index dddef264d4..0000000000
--- a/demos/2d/platformer/engine.cfg
+++ /dev/null
@@ -1,42 +0,0 @@
-[application]
-
-name="Platformer"
-main_scene="res://stage.tscn"
-icon="res://icon.png"
-name_es="Plataformero"
-target_fps="60"
-
-[display]
-
-width=800
-height=480
-stretch_mode="2d"
-stretch_aspect="keep_height"
-
-[image_loader]
-
-repeat=false
-
-[input]
-
-move_left=[key(Left), jbutton(0, 14)]
-move_right=[key(Right), jbutton(0, 15)]
-jump=[key(Up), jbutton(0, 0)]
-shoot=[key(Space), jbutton(0, 2)]
-spawn=[key(F1), jbutton(0, 11)]
-
-[physics_2d]
-
-default_gravity=700
-
-[rasterizer]
-
-use_pixel_snap=true
-
-[render]
-
-mipmap_policy=1
-
-[texture_import]
-
-filter=false
diff --git a/demos/2d/platformer/icon.png b/demos/2d/platformer/icon.png
deleted file mode 100644
index da2c08eb53..0000000000
--- a/demos/2d/platformer/icon.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/moving_platform.gd b/demos/2d/platformer/moving_platform.gd
deleted file mode 100644
index 21c312d5c3..0000000000
--- a/demos/2d/platformer/moving_platform.gd
+++ /dev/null
@@ -1,20 +0,0 @@
-
-extends Node2D
-
-# Member variables
-export var motion = Vector2()
-export var cycle = 1.0
-var accum = 0.0
-
-
-func _fixed_process(delta):
- accum += delta*(1.0/cycle)*PI*2.0
- accum = fmod(accum, PI*2.0)
- var d = sin(accum)
- var xf = Matrix32()
- xf[2]= motion*d
- get_node("platform").set_transform(xf)
-
-
-func _ready():
- set_fixed_process(true)
diff --git a/demos/2d/platformer/moving_platform.png b/demos/2d/platformer/moving_platform.png
deleted file mode 100644
index f01c6ea37f..0000000000
--- a/demos/2d/platformer/moving_platform.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/moving_platform.tscn b/demos/2d/platformer/moving_platform.tscn
deleted file mode 100644
index c6269d6ee7..0000000000
--- a/demos/2d/platformer/moving_platform.tscn
+++ /dev/null
@@ -1,52 +0,0 @@
-[gd_scene load_steps=4 format=1]
-
-[ext_resource path="res://moving_platform.gd" type="Script" id=1]
-[ext_resource path="res://moving_platform.png" type="Texture" id=2]
-
-[sub_resource type="ConvexPolygonShape2D" id=1]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -88, 24, -88, -24, 88, -24, 88, 24 )
-
-[node name="moving_platform" type="Node2D"]
-
-script/script = ExtResource( 1 )
-motion = Vector2( 0, 0 )
-cycle = 1.0
-
-[node name="platform" type="RigidBody2D" parent="."]
-
-input/pickable = false
-shapes/0/shape = SubResource( 1 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-mode = 3
-mass = 1.0
-friction = 1.0
-bounce = 0.0
-gravity_scale = 1.0
-custom_integrator = false
-continuous_cd = 0
-contacts_reported = 0
-contact_monitor = false
-sleeping = false
-can_sleep = true
-velocity/linear = Vector2( 0, 0 )
-velocity/angular = 0.0
-damp_override/linear = -1.0
-damp_override/angular = -1.0
-
-[node name="Sprite" type="Sprite" parent="platform"]
-
-texture = ExtResource( 2 )
-
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="platform"]
-
-build_mode = 0
-polygon = Vector2Array( -88, -24, 88, -24, 88, 24, -88, 24 )
-shape_range = Vector2( -1, -1 )
-trigger = false
-
-
diff --git a/demos/2d/platformer/music.ogg b/demos/2d/platformer/music.ogg
deleted file mode 100644
index ed3e9f0a01..0000000000
--- a/demos/2d/platformer/music.ogg
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/one_way_platform.png b/demos/2d/platformer/one_way_platform.png
deleted file mode 100644
index b5eca877a6..0000000000
--- a/demos/2d/platformer/one_way_platform.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/one_way_platform.tscn b/demos/2d/platformer/one_way_platform.tscn
deleted file mode 100644
index 88c4b0d61a..0000000000
--- a/demos/2d/platformer/one_way_platform.tscn
+++ /dev/null
@@ -1,36 +0,0 @@
-[gd_scene load_steps=3 format=1]
-
-[ext_resource path="res://one_way_platform.png" type="Texture" id=1]
-
-[sub_resource type="RectangleShape2D" id=1]
-
-custom_solver_bias = 0.0
-extents = Vector2( 100, 10 )
-
-[node name="one_way_platform" type="StaticBody2D"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 1 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 1.46304, -13.1672 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-one_way_collision/direction = Vector2( 0, 1 )
-one_way_collision/max_depth = 20.0
-constant_linear_velocity = Vector2( 0, 0 )
-constant_angular_velocity = 0.0
-friction = 1.0
-bounce = 0.0
-
-[node name="sprite" type="Sprite" parent="."]
-
-texture = ExtResource( 1 )
-
-[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
-
-transform/pos = Vector2( 1.46304, -13.1672 )
-shape = SubResource( 1 )
-trigger = false
-_update_shape_index = -1
-
-
diff --git a/demos/2d/platformer/osb_fire.png b/demos/2d/platformer/osb_fire.png
deleted file mode 100644
index 6f914cfe49..0000000000
--- a/demos/2d/platformer/osb_fire.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/osb_jump.png b/demos/2d/platformer/osb_jump.png
deleted file mode 100644
index 72ba032daa..0000000000
--- a/demos/2d/platformer/osb_jump.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/osb_left.png b/demos/2d/platformer/osb_left.png
deleted file mode 100644
index b8e08c2ce7..0000000000
--- a/demos/2d/platformer/osb_left.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/osb_right.png b/demos/2d/platformer/osb_right.png
deleted file mode 100644
index 0e5cbb0d54..0000000000
--- a/demos/2d/platformer/osb_right.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/parallax_bg.tscn b/demos/2d/platformer/parallax_bg.tscn
deleted file mode 100644
index cf5815e28c..0000000000
--- a/demos/2d/platformer/parallax_bg.tscn
+++ /dev/null
@@ -1,101 +0,0 @@
-[gd_scene load_steps=7 format=1]
-
-[ext_resource path="res://scroll_bg_sky.png" type="Texture" id=1]
-[ext_resource path="res://scroll_bg_cloud_1.png" type="Texture" id=2]
-[ext_resource path="res://scroll_bg_cloud_2.png" type="Texture" id=3]
-[ext_resource path="res://scroll_bg_cloud_3.png" type="Texture" id=4]
-[ext_resource path="res://scroll_bg_fg_2.png" type="Texture" id=5]
-[ext_resource path="res://scroll_bg_fg_1.png" type="Texture" id=6]
-
-[node name="parallax_bg" type="ParallaxBackground"]
-
-layer = -1
-offset = Vector2( 0, 0 )
-rotation = 0.0
-scale = Vector2( 1, 1 )
-scroll/offset = Vector2( 0, 0 )
-scroll/base_offset = Vector2( 0, 0 )
-scroll/base_scale = Vector2( 0.7, 0 )
-scroll/limit_begin = Vector2( 0, 0 )
-scroll/limit_end = Vector2( 0, 0 )
-scroll/ignore_camera_zoom = false
-
-[node name="sky" type="ParallaxLayer" parent="."]
-
-motion/scale = Vector2( 1, 1 )
-motion/mirroring = Vector2( 800, 0 )
-
-[node name="Sprite" type="Sprite" parent="sky"]
-
-transform/scale = Vector2( 32, 0.94 )
-texture = ExtResource( 1 )
-centered = false
-
-[node name="clouds" type="ParallaxLayer" parent="."]
-
-motion/scale = Vector2( 0.1, 1 )
-motion/mirroring = Vector2( 800, 0 )
-
-[node name="Sprite" type="Sprite" parent="clouds"]
-
-transform/pos = Vector2( 28, 127 )
-texture = ExtResource( 2 )
-centered = false
-
-[node name="Sprite 2" type="Sprite" parent="clouds"]
-
-transform/pos = Vector2( 404, 24 )
-texture = ExtResource( 2 )
-centered = false
-
-[node name="Sprite 3" type="Sprite" parent="clouds"]
-
-transform/pos = Vector2( 154, 46 )
-texture = ExtResource( 3 )
-centered = false
-
-[node name="Sprite 4" type="Sprite" parent="clouds"]
-
-transform/pos = Vector2( 525, 130 )
-texture = ExtResource( 3 )
-centered = false
-
-[node name="Sprite 5" type="Sprite" parent="clouds"]
-
-transform/pos = Vector2( 255, 158 )
-texture = ExtResource( 4 )
-centered = false
-
-[node name="Sprite 6" type="Sprite" parent="clouds"]
-
-transform/pos = Vector2( 674, 70 )
-texture = ExtResource( 4 )
-centered = false
-
-[node name="mount_ 2" type="ParallaxLayer" parent="."]
-
-motion/scale = Vector2( 0.2, 1 )
-motion/mirroring = Vector2( 800, 0 )
-
-[node name="Sprite" type="Sprite" parent="mount_ 2"]
-
-transform/pos = Vector2( 0, 225 )
-texture = ExtResource( 5 )
-centered = false
-region = true
-region_rect = Rect2( 0, 0, 800, 256 )
-
-[node name="mount_1" type="ParallaxLayer" parent="."]
-
-motion/scale = Vector2( 0.4, 1 )
-motion/mirroring = Vector2( 800, 0 )
-
-[node name="Sprite" type="Sprite" parent="mount_1"]
-
-transform/pos = Vector2( 0, 225 )
-texture = ExtResource( 6 )
-centered = false
-region = true
-region_rect = Rect2( 0, 0, 800, 256 )
-
-
diff --git a/demos/2d/platformer/plank.png b/demos/2d/platformer/plank.png
deleted file mode 100644
index b4f6addee5..0000000000
--- a/demos/2d/platformer/plank.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/plankpin.png b/demos/2d/platformer/plankpin.png
deleted file mode 100644
index 46e104a3fe..0000000000
--- a/demos/2d/platformer/plankpin.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/player.gd b/demos/2d/platformer/player.gd
deleted file mode 100644
index 8cafd8b933..0000000000
--- a/demos/2d/platformer/player.gd
+++ /dev/null
@@ -1,232 +0,0 @@
-
-extends RigidBody2D
-
-# Character Demo, written by Juan Linietsky.
-#
-# Implementation of a 2D Character controller.
-# This implementation uses the physics engine for
-# controlling a character, in a very similar way
-# than a 3D character controller would be implemented.
-#
-# Using the physics engine for this has the main
-# advantages:
-# -Easy to write.
-# -Interaction with other physics-based objects is free
-# -Only have to deal with the object linear velocity, not position
-# -All collision/area framework available
-#
-# But also has the following disadvantages:
-#
-# -Objects may bounce a little bit sometimes
-# -Going up ramps sends the chracter flying up, small hack is needed.
-# -A ray collider is needed to avoid sliding down on ramps and
-# undesiderd bumps, small steps and rare numerical precision errors.
-# (another alternative may be to turn on friction when the character is not moving).
-# -Friction cant be used, so floor velocity must be considered
-# for moving platforms.
-
-# Member variables
-var anim = ""
-var siding_left = false
-var jumping = false
-var stopping_jump = false
-var shooting = false
-
-var WALK_ACCEL = 800.0
-var WALK_DEACCEL = 800.0
-var WALK_MAX_VELOCITY = 200.0
-var AIR_ACCEL = 200.0
-var AIR_DEACCEL = 200.0
-var JUMP_VELOCITY = 460
-var STOP_JUMP_FORCE = 900.0
-
-var MAX_FLOOR_AIRBORNE_TIME = 0.15
-
-var airborne_time = 1e20
-var shoot_time = 1e20
-
-var MAX_SHOOT_POSE_TIME = 0.3
-
-var bullet = preload("res://bullet.tscn")
-
-var floor_h_velocity = 0.0
-var enemy
-
-
-func _integrate_forces(s):
- var lv = s.get_linear_velocity()
- var step = s.get_step()
-
- var new_anim = anim
- var new_siding_left = siding_left
-
- # Get the controls
- var move_left = Input.is_action_pressed("move_left")
- var move_right = Input.is_action_pressed("move_right")
- var jump = Input.is_action_pressed("jump")
- var shoot = Input.is_action_pressed("shoot")
- var spawn = Input.is_action_pressed("spawn")
-
- if spawn:
- var e = enemy.instance()
- var p = get_pos()
- p.y = p.y - 100
- e.set_pos(p)
- get_parent().add_child(e)
-
- # Deapply prev floor velocity
- lv.x -= floor_h_velocity
- floor_h_velocity = 0.0
-
- # Find the floor (a contact with upwards facing collision normal)
- var found_floor = false
- var floor_index = -1
-
- for x in range(s.get_contact_count()):
- var ci = s.get_contact_local_normal(x)
- if (ci.dot(Vector2(0, -1)) > 0.6):
- found_floor = true
- floor_index = x
-
- # A good idea when impementing characters of all kinds,
- # compensates for physics imprecission, as well as human reaction delay.
- if (shoot and not shooting):
- shoot_time = 0
- var bi = bullet.instance()
- var ss
- if (siding_left):
- ss = -1.0
- else:
- ss = 1.0
- var pos = get_pos() + get_node("bullet_shoot").get_pos()*Vector2(ss, 1.0)
-
- bi.set_pos(pos)
- get_parent().add_child(bi)
-
- bi.set_linear_velocity(Vector2(800.0*ss, -80))
- get_node("sprite/smoke").set_emitting(true)
- get_node("sound").play("shoot")
- PS2D.body_add_collision_exception(bi.get_rid(), get_rid()) # Make bullet and this not collide
- else:
- shoot_time += step
-
- if (found_floor):
- airborne_time = 0.0
- else:
- airborne_time += step # Time it spent in the air
-
- var on_floor = airborne_time < MAX_FLOOR_AIRBORNE_TIME
-
- # Process jump
- if (jumping):
- if (lv.y > 0):
- # Set off the jumping flag if going down
- jumping = false
- elif (not jump):
- stopping_jump = true
-
- if (stopping_jump):
- lv.y += STOP_JUMP_FORCE*step
-
- if (on_floor):
- # Process logic when character is on floor
- if (move_left and not move_right):
- if (lv.x > -WALK_MAX_VELOCITY):
- lv.x -= WALK_ACCEL*step
- elif (move_right and not move_left):
- if (lv.x < WALK_MAX_VELOCITY):
- lv.x += WALK_ACCEL*step
- else:
- var xv = abs(lv.x)
- xv -= WALK_DEACCEL*step
- if (xv < 0):
- xv = 0
- lv.x = sign(lv.x)*xv
-
- # Check jump
- if (not jumping and jump):
- lv.y = -JUMP_VELOCITY
- jumping = true
- stopping_jump = false
- get_node("sound").play("jump")
-
- # Check siding
- if (lv.x < 0 and move_left):
- new_siding_left = true
- elif (lv.x > 0 and move_right):
- new_siding_left = false
- if (jumping):
- new_anim = "jumping"
- elif (abs(lv.x) < 0.1):
- if (shoot_time < MAX_SHOOT_POSE_TIME):
- new_anim = "idle_weapon"
- else:
- new_anim = "idle"
- else:
- if (shoot_time < MAX_SHOOT_POSE_TIME):
- new_anim = "run_weapon"
- else:
- new_anim = "run"
- else:
- # Process logic when the character is in the air
- if (move_left and not move_right):
- if (lv.x > -WALK_MAX_VELOCITY):
- lv.x -= AIR_ACCEL*step
- elif (move_right and not move_left):
- if (lv.x < WALK_MAX_VELOCITY):
- lv.x += AIR_ACCEL*step
- else:
- var xv = abs(lv.x)
- xv -= AIR_DEACCEL*step
- if (xv < 0):
- xv = 0
- lv.x = sign(lv.x)*xv
-
- if (lv.y < 0):
- if (shoot_time < MAX_SHOOT_POSE_TIME):
- new_anim = "jumping_weapon"
- else:
- new_anim = "jumping"
- else:
- if (shoot_time < MAX_SHOOT_POSE_TIME):
- new_anim = "falling_weapon"
- else:
- new_anim = "falling"
-
- # Update siding
- if (new_siding_left != siding_left):
- if (new_siding_left):
- get_node("sprite").set_scale(Vector2(-1, 1))
- else:
- get_node("sprite").set_scale(Vector2(1, 1))
-
- siding_left = new_siding_left
-
- # Change animation
- if (new_anim != anim):
- anim = new_anim
- get_node("anim").play(anim)
-
- shooting = shoot
-
- # Apply floor velocity
- if (found_floor):
- floor_h_velocity = s.get_contact_collider_velocity_at_pos(floor_index).x
- lv.x += floor_h_velocity
-
- # Finally, apply gravity and set back the linear velocity
- lv += s.get_total_gravity()*step
- s.set_linear_velocity(lv)
-
-
-func _ready():
- enemy = ResourceLoader.load("res://enemy.tscn")
-
-# if !Globals.has_singleton("Facebook"):
-# return
-# var Facebook = Globals.get_singleton("Facebook")
-# var link = Globals.get("facebook/link")
-# var icon = Globals.get("facebook/icon")
-# var msg = "I just sneezed on your wall! Beat my score and Stop the Running nose!"
-# var title = "I just sneezed on your wall!"
-# Facebook.post("feed", msg, title, link, icon)
diff --git a/demos/2d/platformer/player.tscn b/demos/2d/platformer/player.tscn
deleted file mode 100644
index 77a2e272a6..0000000000
--- a/demos/2d/platformer/player.tscn
+++ /dev/null
@@ -1,330 +0,0 @@
-[gd_scene load_steps=25 format=1]
-
-[ext_resource path="res://player.gd" type="Script" id=1]
-[ext_resource path="res://robot_demo.png" type="Texture" id=2]
-[ext_resource path="res://bullet.png" type="Texture" id=3]
-[ext_resource path="res://sound_coin.wav" type="Sample" id=4]
-[ext_resource path="res://sound_jump.wav" type="Sample" id=5]
-[ext_resource path="res://sound_shoot.wav" type="Sample" id=6]
-[ext_resource path="res://osb_left.png" type="Texture" id=7]
-[ext_resource path="res://osb_right.png" type="Texture" id=8]
-[ext_resource path="res://osb_jump.png" type="Texture" id=9]
-[ext_resource path="res://osb_fire.png" type="Texture" id=10]
-
-[sub_resource type="RayShape2D" id=1]
-
-custom_solver_bias = 0.5
-length = 20.0
-
-[sub_resource type="ConvexPolygonShape2D" id=2]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -19.902, -24.8691, 19.3625, -24.6056, -0.138023, 16.5036 )
-
-[sub_resource type="ColorRamp" id=3]
-
-offsets = FloatArray( 0, 1 )
-colors = ColorArray( 1, 1, 1, 1, 0, 0, 0, 0.0442478 )
-
-[sub_resource type="Animation" id=4]
-
-resource/name = "crouch"
-length = 0.01
-loop = true
-step = 0.25
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:frame")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 22 ] }
-
-[sub_resource type="Animation" id=5]
-
-resource/name = "falling"
-length = 0.01
-loop = true
-step = 0.25
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:frame")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 21 ] }
-
-[sub_resource type="Animation" id=6]
-
-resource/name = "falling_weapon"
-length = 0.5
-loop = true
-step = 0.25
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:frame")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 26 ] }
-
-[sub_resource type="Animation" id=7]
-
-length = 7.0
-loop = true
-step = 0.25
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:frame")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":false, "times":FloatArray( 0, 1.25, 1.5, 2, 4.5, 4.75, 5, 5.25 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1, 1 ), "values":[ 16, 17, 18, 16, 19, 20, 19, 16 ] }
-
-[sub_resource type="Animation" id=8]
-
-length = 0.5
-loop = true
-step = 0.25
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:frame")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 25 ] }
-
-[sub_resource type="Animation" id=9]
-
-length = 0.5
-loop = true
-step = 0.25
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:frame")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.25, 0.5 ), "transitions":FloatArray( 1, 1, 1 ), "values":[ 23, 24, 23 ] }
-
-[sub_resource type="Animation" id=10]
-
-length = 0.5
-loop = true
-step = 0.25
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:frame")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 26 ] }
-
-[sub_resource type="Animation" id=11]
-
-length = 1.25
-loop = true
-step = 0.25
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:frame")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1 ), "values":[ 0, 1, 2, 3, 4, 0 ] }
-
-[sub_resource type="Animation" id=12]
-
-length = 1.25
-loop = true
-step = 0.25
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:frame")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1 ), "values":[ 5, 6, 7, 8, 9, 5 ] }
-
-[sub_resource type="Animation" id=13]
-
-length = 1.25
-loop = true
-step = 0.25
-tracks/0/type = "value"
-tracks/0/path = NodePath("sprite:frame")
-tracks/0/interp = 1
-tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1 ), "values":[ 10, 11, 12, 13, 14, 5 ] }
-
-[sub_resource type="SampleLibrary" id=14]
-
-samples/jump = { "db":0.0, "pitch":1.0, "sample":ExtResource( 5 ) }
-samples/shoot = { "db":0.0, "pitch":1.0, "sample":ExtResource( 6 ) }
-samples/coin = { "db":0.0, "pitch":1.0, "sample":ExtResource( 4 ) }
-
-[node name="player" type="RigidBody2D"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 1 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1.76469, 0.291992, -12.1587 )
-shapes/0/trigger = false
-shapes/1/shape = SubResource( 2 )
-shapes/1/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/1/trigger = false
-collision/layers = 1
-collision/mask = 1
-mode = 2
-mass = 3.0
-friction = 0.0
-bounce = 0.0
-gravity_scale = 1.0
-custom_integrator = true
-continuous_cd = 0
-contacts_reported = 3
-contact_monitor = false
-sleeping = false
-can_sleep = true
-velocity/linear = Vector2( 0, 0 )
-velocity/angular = 0.0
-damp_override/linear = -1.0
-damp_override/angular = -1.0
-script/script = ExtResource( 1 )
-
-[node name="sprite" type="Sprite" parent="."]
-
-texture = ExtResource( 2 )
-vframes = 2
-hframes = 16
-
-[node name="smoke" type="Particles2D" parent="sprite"]
-
-visibility/self_opacity = 0.363636
-visibility/blend_mode = 1
-transform/pos = Vector2( 20.7312, 3.21187 )
-transform/rot = 83.4504
-config/amount = 4
-config/lifetime = 0.3
-config/emit_timeout = 0.3
-config/emitting = false
-config/local_space = false
-config/explosiveness = 0.1
-config/texture = ExtResource( 3 )
-params/direction = 0.0
-params/spread = 180.0
-params/linear_velocity = 20.0
-params/spin_velocity = 1.0
-params/orbit_velocity = 0.0
-params/gravity_direction = 0.0
-params/gravity_strength = 9.8
-params/radial_accel = 0.0
-params/tangential_accel = 0.0
-params/damping = 0.0
-params/initial_angle = 0.0
-params/initial_size = 2.0
-params/final_size = 2.0
-params/hue_variation = 0.0
-params/anim_speed_scale = 1.0
-params/anim_initial_pos = 0.0
-randomness/spin_velocity = 2.0
-color/color_ramp = SubResource( 3 )
-
-[node name="anim" type="AnimationPlayer" parent="."]
-
-playback/process_mode = 1
-playback/default_blend_time = 0.0
-root/root = NodePath("..")
-anims/crouch = SubResource( 4 )
-anims/falling = SubResource( 5 )
-anims/falling_weapon = SubResource( 6 )
-anims/idle = SubResource( 7 )
-anims/idle_weapon = SubResource( 8 )
-anims/jumping = SubResource( 9 )
-anims/jumping_weapon = SubResource( 10 )
-anims/run = SubResource( 11 )
-anims/run_weapon = SubResource( 12 )
-anims/standing_weapon_ready = SubResource( 13 )
-playback/active = true
-playback/speed = 2.0
-blend_times = [ ]
-autoplay = ""
-
-[node name="camera" type="Camera2D" parent="."]
-
-anchor_mode = 1
-rotating = false
-current = true
-zoom = Vector2( 1, 1 )
-limit/left = 0
-limit/top = 0
-limit/right = 10000000
-limit/bottom = 10000000
-drag_margin/h_enabled = true
-drag_margin/v_enabled = true
-smoothing/enable = false
-smoothing/speed = 5.0
-drag_margin/left = 0.2
-drag_margin/top = 0.2
-drag_margin/right = 0.2
-drag_margin/bottom = 0.2
-
-[node name="bullet_shoot" type="Position2D" parent="."]
-
-transform/pos = Vector2( 31.2428, 4.08784 )
-
-[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
-
-transform/pos = Vector2( 0.291992, -12.1587 )
-transform/scale = Vector2( 1, 1.76469 )
-shape = SubResource( 1 )
-trigger = false
-_update_shape_index = -1
-
-[node name="sound" type="SamplePlayer" parent="."]
-
-config/polyphony = 1
-config/samples = SubResource( 14 )
-default/volume_db = 0.0
-default/pitch_scale = 1.0
-default/pan = 0.0
-default/depth = 0.0
-default/height = 0.0
-default/filter/type = 0
-default/filter/cutoff = 0.0
-default/filter/resonance = 0.0
-default/filter/gain = 0.0
-default/reverb_room = 2
-default/reverb_send = 0.0
-default/chorus_send = 0.0
-
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
-
-build_mode = 0
-polygon = Vector2Array( -0.138023, 16.5036, -19.902, -24.8691, 19.3625, -24.6056 )
-shape_range = Vector2( -1, -1 )
-trigger = false
-
-[node name="ui" type="CanvasLayer" parent="."]
-
-layer = 0
-offset = Vector2( 0, 0 )
-rotation = 0.0
-scale = Vector2( 1, 1 )
-
-[node name="left" type="TouchScreenButton" parent="ui"]
-
-transform/pos = Vector2( 27.7593, 360.87 )
-transform/scale = Vector2( 1.49157, 1.46265 )
-normal = ExtResource( 7 )
-pressed = null
-bitmask = null
-passby_press = true
-action = "move_left"
-visibility_mode = 1
-
-[node name="right" type="TouchScreenButton" parent="ui"]
-
-transform/pos = Vector2( 121.542, 361.415 )
-transform/scale = Vector2( 1.49157, 1.46265 )
-normal = ExtResource( 8 )
-pressed = null
-bitmask = null
-passby_press = true
-action = "move_right"
-visibility_mode = 1
-
-[node name="jump" type="TouchScreenButton" parent="ui"]
-
-transform/pos = Vector2( 666.224, 359.02 )
-transform/scale = Vector2( 1.49157, 1.46265 )
-normal = ExtResource( 9 )
-pressed = null
-bitmask = null
-passby_press = false
-action = "jump"
-visibility_mode = 1
-
-[node name="fire" type="TouchScreenButton" parent="ui"]
-
-transform/pos = Vector2( 668.073, 262.788 )
-transform/scale = Vector2( 1.49157, 1.46265 )
-normal = ExtResource( 10 )
-pressed = null
-bitmask = null
-passby_press = false
-action = "shoot"
-visibility_mode = 1
-
-
diff --git a/demos/2d/platformer/robot_demo.png b/demos/2d/platformer/robot_demo.png
deleted file mode 100644
index bba8c63874..0000000000
--- a/demos/2d/platformer/robot_demo.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/scroll_bg_cloud_1.png b/demos/2d/platformer/scroll_bg_cloud_1.png
deleted file mode 100644
index 728d454b5c..0000000000
--- a/demos/2d/platformer/scroll_bg_cloud_1.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/scroll_bg_cloud_2.png b/demos/2d/platformer/scroll_bg_cloud_2.png
deleted file mode 100644
index 66e0cf2fb5..0000000000
--- a/demos/2d/platformer/scroll_bg_cloud_2.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/scroll_bg_cloud_3.png b/demos/2d/platformer/scroll_bg_cloud_3.png
deleted file mode 100644
index 3586bb4072..0000000000
--- a/demos/2d/platformer/scroll_bg_cloud_3.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/scroll_bg_fg_1.png b/demos/2d/platformer/scroll_bg_fg_1.png
deleted file mode 100644
index e64c446f65..0000000000
--- a/demos/2d/platformer/scroll_bg_fg_1.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/scroll_bg_fg_2.png b/demos/2d/platformer/scroll_bg_fg_2.png
deleted file mode 100644
index ef9601183b..0000000000
--- a/demos/2d/platformer/scroll_bg_fg_2.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/scroll_bg_sky.png b/demos/2d/platformer/scroll_bg_sky.png
deleted file mode 100644
index 04c196510f..0000000000
--- a/demos/2d/platformer/scroll_bg_sky.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/seesaw.tscn b/demos/2d/platformer/seesaw.tscn
deleted file mode 100644
index 9af07dc07b..0000000000
--- a/demos/2d/platformer/seesaw.tscn
+++ /dev/null
@@ -1,60 +0,0 @@
-[gd_scene load_steps=4 format=1]
-
-[ext_resource path="res://plank.png" type="Texture" id=1]
-[ext_resource path="res://plankpin.png" type="Texture" id=2]
-
-[sub_resource type="RectangleShape2D" id=1]
-
-custom_solver_bias = 0.0
-extents = Vector2( 128, 8 )
-
-[node name="seesaw" type="Node2D"]
-
-[node name="plank" type="RigidBody2D" parent="."]
-
-input/pickable = false
-shapes/0/shape = SubResource( 1 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-mode = 0
-mass = 5.10204
-friction = 1.0
-bounce = 0.0
-gravity_scale = 1.0
-custom_integrator = false
-continuous_cd = 0
-contacts_reported = 0
-contact_monitor = false
-sleeping = false
-can_sleep = true
-velocity/linear = Vector2( 0, 0 )
-velocity/angular = 0.0
-damp_override/linear = -1.0
-damp_override/angular = -1.0
-
-[node name="sprite" type="Sprite" parent="plank"]
-
-texture = ExtResource( 1 )
-
-[node name="CollisionShape2D" type="CollisionShape2D" parent="plank"]
-
-shape = SubResource( 1 )
-trigger = false
-_update_shape_index = -1
-
-[node name="pin" type="PinJoint2D" parent="."]
-
-node_a = NodePath("../plank")
-node_b = NodePath("")
-bias/bias = 0.0
-collision/exclude_nodes = true
-softness = 0.0
-
-[node name="Sprite" type="Sprite" parent="."]
-
-transform/pos = Vector2( -0.290825, 20.2425 )
-texture = ExtResource( 2 )
-
-
diff --git a/demos/2d/platformer/sound_coin.wav b/demos/2d/platformer/sound_coin.wav
deleted file mode 100644
index e78579f461..0000000000
--- a/demos/2d/platformer/sound_coin.wav
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/sound_explode.wav b/demos/2d/platformer/sound_explode.wav
deleted file mode 100644
index 229c85399c..0000000000
--- a/demos/2d/platformer/sound_explode.wav
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/sound_hit.wav b/demos/2d/platformer/sound_hit.wav
deleted file mode 100644
index 4fb3b13812..0000000000
--- a/demos/2d/platformer/sound_hit.wav
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/sound_jump.wav b/demos/2d/platformer/sound_jump.wav
deleted file mode 100644
index e9942e65e6..0000000000
--- a/demos/2d/platformer/sound_jump.wav
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/sound_shoot.wav b/demos/2d/platformer/sound_shoot.wav
deleted file mode 100644
index ad74f328cb..0000000000
--- a/demos/2d/platformer/sound_shoot.wav
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/stage.tscn b/demos/2d/platformer/stage.tscn
deleted file mode 100644
index 9709efefa9..0000000000
--- a/demos/2d/platformer/stage.tscn
+++ /dev/null
@@ -1,352 +0,0 @@
-[gd_scene load_steps=10 format=1]
-
-[ext_resource path="res://tileset.tres" type="TileSet" id=1]
-[ext_resource path="res://coin.tscn" type="PackedScene" id=2]
-[ext_resource path="res://moving_platform.tscn" type="PackedScene" id=3]
-[ext_resource path="res://seesaw.tscn" type="PackedScene" id=4]
-[ext_resource path="res://one_way_platform.tscn" type="PackedScene" id=5]
-[ext_resource path="res://player.tscn" type="PackedScene" id=6]
-[ext_resource path="res://music.ogg" type="AudioStream" id=7]
-[ext_resource path="res://enemy.tscn" type="PackedScene" id=8]
-[ext_resource path="res://parallax_bg.tscn" type="PackedScene" id=9]
-
-[node name="stage" type="Node"]
-
-[node name="tile_map" type="TileMap" parent="."]
-
-mode = 0
-tile_set = ExtResource( 1 )
-cell/size = Vector2( 64, 64 )
-cell/quadrant_size = 8
-cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-cell/half_offset = 2
-cell/tile_origin = 0
-cell/y_sort = false
-collision/use_kinematic = false
-collision/friction = 1.0
-collision/bounce = 0.0
-collision/layers = 1
-collision/mask = 1
-occluder/light_mask = 1
-tile_data = IntArray( 0, 2, 70, 536870914, 71, 10, 72, 10, 73, 10, 74, 10, 75, 10, 76, 10, 77, 10, 78, 10, 65536, 2, 65606, 536870914, 65607, 10, 65608, 10, 65609, 10, 65610, 10, 65611, 10, 65612, 10, 65613, 10, 65614, 10, 131072, 2, 131142, 536870914, 131143, 10, 131144, 10, 131145, 10, 131146, 10, 131147, 10, 131148, 10, 131149, 10, 131150, 10, 196608, 2, 196626, 9, 196678, 536870914, 196679, 10, 196680, 10, 196681, 10, 196682, 10, 196683, 10, 196684, 10, 196685, 10, 196686, 10, 262144, 2, 262162, 8, 262214, 536870914, 262215, 10, 262216, 10, 262217, 10, 262218, 10, 262219, 10, 262220, 10, 262221, 10, 262222, 10, 327680, 2, 327697, 536870921, 327698, 7, 327733, 9, 327750, 536870914, 327751, 10, 327752, 10, 327753, 10, 327754, 10, 327755, 10, 327756, 10, 327757, 10, 327758, 10, 393216, 2, 393233, 536870920, 393234, 7, 393257, 9, 393269, 7, 393286, 536870914, 393287, 10, 393288, 10, 393289, 10, 393290, 10, 393291, 10, 393292, 10, 393293, 10, 393294, 10, 458752, 2, 458769, 7, 458770, 8, 458790, 9, 458793, 8, 458805, 8, 458822, 536870914, 458823, 10, 458824, 10, 458825, 10, 458826, 10, 458827, 10, 458828, 10, 458829, 10, 458830, 10, 524288, 4, 524289, 1, 524304, 536870913, 524305, 536870918, 524306, 6, 524307, 5, 524308, 1, 524326, 8, 524329, 7, 524341, 7, 524358, 536870914, 524359, 10, 524360, 10, 524361, 10, 524362, 10, 524363, 10, 524364, 10, 524365, 10, 524366, 10, 589824, 10, 589825, 13, 589840, 536870914, 589841, 10, 589842, 10, 589843, 10, 589844, 2, 589862, 7, 589865, 7, 589876, 536870913, 589877, 6, 589878, 1, 589894, 536870914, 589895, 10, 589896, 10, 589897, 10, 589898, 10, 589899, 10, 589900, 10, 589901, 10, 589902, 10, 655360, 2, 655376, 536870914, 655377, 10, 655378, 10, 655379, 10, 655380, 2, 655398, 7, 655401, 8, 655412, 536870925, 655413, 11, 655414, 13, 655430, 536870914, 655431, 10, 655432, 10, 655433, 10, 655434, 10, 655435, 10, 655436, 10, 655437, 10, 655438, 10, 720896, 2, 720912, 536870914, 720913, 10, 720914, 10, 720915, 10, 720916, 2, 720934, 8, 720937, 7, 720958, 536870913, 720959, 5, 720960, 536870917, 720961, 5, 720962, 5, 720963, 536870917, 720964, 5, 720965, 0, 720966, 536870916, 720967, 10, 720968, 10, 720969, 10, 720970, 10, 720971, 10, 720972, 10, 720973, 10, 720974, 10, 786432, 2, 786437, 9, 786448, 536870914, 786449, 10, 786450, 10, 786451, 10, 786452, 2, 786464, 536870913, 786465, 1, 786470, 7, 786473, 7, 786474, 536870924, 786475, 1, 786494, 536870914, 786495, 10, 786496, 10, 786497, 10, 786498, 10, 786499, 10, 786500, 10, 786501, 10, 786502, 10, 786503, 10, 786504, 10, 786505, 10, 786506, 10, 786507, 10, 786508, 10, 786509, 10, 851968, 2, 851973, 7, 851984, 536870914, 851985, 10, 851986, 10, 851987, 10, 851988, 2, 851996, 536870913, 851997, 1, 852000, 536870914, 852001, 3, 852006, 7, 852009, 536870913, 852011, 2, 852030, 536870914, 852031, 10, 852032, 10, 852033, 10, 852034, 10, 852035, 10, 852036, 10, 852037, 10, 852038, 10, 852039, 10, 852040, 10, 852041, 10, 852042, 10, 852043, 10, 852044, 10, 852045, 10, 917504, 2, 917506, 9, 917509, 7, 917512, 536870921, 917520, 536870925, 917521, 11, 917522, 11, 917523, 11, 917524, 13, 917532, 536870925, 917533, 13, 917536, 536870914, 917537, 4, 917538, 1, 917540, 536870913, 917541, 0, 917542, 1, 917545, 536870914, 917546, 10, 917547, 4, 917548, 1, 917566, 536870914, 917567, 10, 917568, 10, 917569, 10, 917570, 10, 917571, 10, 917572, 10, 917573, 10, 917574, 10, 917575, 10, 917576, 10, 917577, 10, 917578, 10, 917579, 10, 917580, 10, 917581, 10, 983040, 2, 983042, 7, 983045, 7, 983048, 536870920, 983050, 536870913, 983051, 0, 983052, 1, 983064, 536870913, 983065, 1, 983072, 536870914, 983073, 10, 983074, 4, 983075, 0, 983076, 536870916, 983077, 10, 983078, 4, 983079, 536870912, 983080, 536870912, 983081, 536870916, 983082, 10, 983083, 10, 983084, 2, 983095, 9, 983102, 536870914, 983103, 10, 983104, 10, 983105, 10, 983106, 10, 983107, 10, 983108, 10, 983109, 10, 983110, 10, 983111, 10, 983112, 10, 983113, 10, 983114, 10, 983115, 10, 983116, 10, 983117, 10, 1048576, 2, 1048578, 8, 1048581, 8, 1048584, 536870919, 1048586, 536870914, 1048587, 536870922, 1048588, 2, 1048600, 536870925, 1048601, 13, 1048604, 9, 1048608, 536870925, 1048609, 536870923, 1048610, 536870923, 1048611, 536870923, 1048612, 10, 1048613, 10, 1048614, 10, 1048615, 10, 1048616, 10, 1048617, 10, 1048618, 10, 1048619, 10, 1048620, 4, 1048621, 1, 1048630, 536870921, 1048631, 8, 1048638, 536870914, 1048639, 10, 1048640, 10, 1048641, 10, 1048642, 10, 1048643, 10, 1048644, 10, 1048645, 10, 1048646, 10, 1048647, 10, 1048648, 10, 1048649, 10, 1048650, 10, 1048651, 10, 1048652, 10, 1048653, 10, 1114112, 4, 1114113, 0, 1114114, 6, 1114115, 0, 1114116, 0, 1114117, 6, 1114118, 1, 1114120, 536870920, 1114122, 536870925, 1114123, 11, 1114124, 13, 1114128, 536870913, 1114129, 5, 1114130, 536870917, 1114131, 5, 1114132, 0, 1114133, 1, 1114140, 7, 1114141, 536870921, 1114148, 536870914, 1114149, 10, 1114150, 10, 1114151, 10, 1114152, 10, 1114153, 10, 1114154, 10, 1114155, 10, 1114156, 10, 1114157, 2, 1114166, 536870920, 1114167, 8, 1114174, 536870914, 1114175, 10, 1114176, 10, 1114177, 10, 1114178, 10, 1114179, 10, 1114180, 10, 1114181, 10, 1114182, 10, 1114183, 10, 1114184, 10, 1114185, 10, 1114186, 10, 1114187, 10, 1114188, 10, 1179648, 10, 1179649, 10, 1179650, 10, 1179651, 10, 1179652, 10, 1179653, 10, 1179654, 2, 1179656, 536870919, 1179664, 536870915, 1179665, 10, 1179666, 10, 1179667, 10, 1179668, 10, 1179669, 4, 1179670, 12, 1179675, 9, 1179676, 8, 1179677, 8, 1179684, 536870914, 1179685, 10, 1179686, 10, 1179687, 10, 1179688, 10, 1179689, 10, 1179690, 10, 1179691, 10, 1179692, 10, 1179693, 4, 1179694, 1, 1179701, 9, 1179702, 536870919, 1179703, 7, 1179710, 536870914, 1179711, 10, 1179712, 10, 1179713, 10, 1179714, 10, 1179715, 10, 1179716, 10, 1179717, 10, 1179718, 10, 1179719, 10, 1179720, 10, 1179721, 10, 1179722, 10, 1245184, 10, 1245185, 10, 1245186, 10, 1245187, 10, 1245188, 10, 1245189, 10, 1245190, 2, 1245192, 536870919, 1245199, 536870913, 1245200, 536870916, 1245201, 10, 1245202, 10, 1245203, 10, 1245204, 10, 1245205, 10, 1245207, 1, 1245211, 7, 1245212, 7, 1245213, 536870920, 1245220, 536870914, 1245221, 10, 1245222, 10, 1245223, 10, 1245224, 10, 1245225, 10, 1245226, 10, 1245227, 10, 1245228, 10, 1245229, 10, 1245230, 2, 1245237, 8, 1245238, 536870919, 1245239, 8, 1245240, 536870921, 1245246, 536870914, 1245247, 10, 1245248, 10, 1245249, 10, 1245250, 10, 1245251, 10, 1245252, 10, 1245253, 10, 1245254, 10, 1245255, 10, 1245256, 10, 1245257, 10, 1245258, 10, 1310720, 10, 1310721, 10, 1310722, 10, 1310723, 10, 1310724, 10, 1310725, 10, 1310726, 2, 1310728, 536870920, 1310730, 536870913, 1310731, 1, 1310734, 536870913, 1310735, 536870916, 1310736, 10, 1310737, 10, 1310738, 10, 1310739, 10, 1310740, 10, 1310741, 10, 1310742, 10, 1310743, 4, 1310744, 1, 1310747, 8, 1310748, 7, 1310749, 536870919, 1310756, 536870914, 1310757, 10, 1310758, 10, 1310759, 10, 1310760, 10, 1310761, 10, 1310762, 10, 1310763, 10, 1310764, 10, 1310765, 10, 1310766, 4, 1310767, 5, 1310768, 12, 1310773, 7, 1310774, 536870919, 1310775, 7, 1310776, 536870919, 1310782, 536870914, 1310783, 10, 1310784, 10, 1310785, 10, 1310786, 10, 1310787, 10, 1310788, 10, 1310789, 10, 1310790, 10, 1310791, 10, 1310792, 10, 1310793, 10, 1376256, 10, 1376257, 10, 1376258, 10, 1376259, 10, 1376260, 10, 1376261, 10, 1376262, 4, 1376263, 0, 1376264, 0, 1376265, 0, 1376266, 536870916, 1376267, 4, 1376268, 0, 1376269, 0, 1376270, 536870916, 1376271, 10, 1376272, 10, 1376273, 10, 1376274, 10, 1376275, 10, 1376276, 10, 1376277, 10, 1376278, 10, 1376279, 10, 1376280, 4, 1376281, 12, 1376283, 8, 1376284, 8, 1376285, 536870920, 1376287, 536870924, 1376288, 0, 1376289, 5, 1376290, 536870917, 1376291, 0, 1376292, 536870916, 1376293, 10, 1376294, 10, 1376295, 10, 1376296, 10, 1376297, 10, 1376298, 10, 1376299, 10, 1376300, 10, 1376301, 10, 1376302, 10, 1376303, 10, 1376305, 12, 1376309, 7, 1376310, 536870920, 1376311, 7, 1376312, 536870920, 1376318, 536870914, 1376319, 10, 1376320, 10, 1376321, 10, 1376322, 10, 1376323, 10, 1376324, 10, 1376325, 10, 1376326, 10, 1376327, 10, 1376328, 10, 1441792, 10, 1441793, 10, 1441794, 10, 1441795, 10, 1441796, 10, 1441797, 10, 1441798, 10, 1441799, 10, 1441800, 10, 1441801, 10, 1441802, 10, 1441803, 10, 1441804, 10, 1441805, 10, 1441806, 10, 1441807, 10, 1441808, 10, 1441809, 10, 1441810, 10, 1441811, 10, 1441812, 10, 1441813, 10, 1441814, 10, 1441815, 10, 1441816, 10, 1441818, 0, 1441819, 6, 1441820, 6, 1441821, 536870918, 1441822, 5, 1441824, 10, 1441825, 10, 1441826, 10, 1441827, 10, 1441828, 10, 1441829, 10, 1441830, 10, 1441831, 10, 1441832, 10, 1441833, 10, 1441834, 10, 1441835, 10, 1441836, 10, 1441837, 10, 1441838, 10, 1441839, 10, 1441840, 10, 1441842, 0, 1441843, 0, 1441844, 0, 1441845, 6, 1441846, 536870918, 1441847, 6, 1441848, 536870918, 1441849, 0, 1441850, 5, 1441851, 536870917, 1441852, 5, 1441853, 0, 1441854, 536870916, 1441855, 10, 1441856, 10, 1441857, 10, 1441858, 10, 1441859, 10, 1441860, 10, 1441861, 10, 1441862, 10, 1441863, 10, 1507328, 10, 1507329, 10, 1507330, 10, 1507331, 10, 1507332, 10, 1507333, 10, 1507334, 10, 1507335, 10, 1507336, 10, 1507337, 10, 1507338, 10, 1507339, 10, 1507340, 10, 1507341, 10, 1507342, 10, 1507343, 10, 1507344, 10, 1507345, 10, 1507346, 10, 1507347, 10, 1507348, 10, 1507349, 10, 1507350, 10, 1507351, 10, 1507352, 10, 1507353, 10, 1507354, 10, 1507355, 10, 1507356, 10, 1507357, 10, 1507358, 10, 1507359, 10, 1507360, 10, 1507361, 10, 1507362, 10, 1507363, 10, 1507364, 10, 1507365, 10, 1507366, 10, 1507367, 10, 1507368, 10, 1507369, 10, 1507370, 10, 1507371, 10, 1507372, 10, 1507373, 10, 1507374, 10, 1507375, 10, 1507376, 10, 1507377, 10, 1507378, 10, 1507379, 10, 1507380, 10, 1507381, 10, 1507382, 10, 1507383, 10, 1507384, 10, 1507385, 10, 1507386, 10, 1507387, 10, 1507388, 10, 1507389, 10, 1507390, 10, 1507391, 10, 1507392, 10, 1507393, 10, 1507394, 10, 1507395, 10, 1507396, 10, 1507397, 10, 1507398, 10, 1507399, 10, 1572864, 10, 1572865, 10, 1572866, 10, 1572867, 10, 1572868, 10, 1572869, 10, 1572870, 10, 1572871, 10, 1572872, 10, 1572873, 10, 1572874, 10, 1572875, 10, 1572876, 10, 1572877, 10, 1572878, 10, 1572879, 10, 1572880, 10, 1572881, 10, 1572882, 10, 1572883, 10, 1572884, 10, 1572885, 10, 1572886, 10, 1572887, 10, 1572888, 10, 1572889, 10, 1572890, 10, 1572891, 10, 1572892, 10, 1572893, 10, 1572894, 10, 1572895, 10, 1572896, 10, 1572897, 10, 1572898, 10, 1572899, 10, 1572900, 10, 1572901, 10, 1572902, 10, 1572903, 10, 1572904, 10, 1572905, 10, 1572906, 10, 1572907, 10, 1572908, 10, 1572909, 10, 1572910, 10, 1572911, 10, 1572912, 10, 1572913, 10, 1572914, 10, 1572915, 10, 1572916, 10, 1572917, 10, 1572918, 10, 1572919, 10, 1572920, 10, 1572921, 10, 1572922, 10, 1572923, 10, 1572924, 10, 1572925, 10, 1572926, 10, 1572927, 10, 1572928, 10, 1572929, 10, 1572930, 10, 1572931, 10, 1572932, 10, 1572933, 10, 1572934, 10, 1572935, 10, 1638400, 10, 1638401, 10, 1638402, 10, 1638403, 10, 1638404, 10, 1638405, 10, 1638406, 10, 1638407, 10, 1638408, 10, 1638409, 10, 1638410, 10, 1638411, 10, 1638412, 10, 1638413, 10, 1638414, 10, 1638415, 10, 1638416, 10, 1638417, 10, 1638418, 10, 1638419, 10, 1638420, 10, 1638421, 10, 1638422, 10, 1638423, 10, 1638424, 10, 1638425, 10, 1638426, 10, 1638427, 10, 1638428, 10, 1638429, 10, 1638430, 10, 1638431, 10, 1638432, 10, 1638433, 10, 1638434, 10, 1638435, 10, 1638436, 10, 1638437, 10, 1638438, 10, 1638439, 10, 1638440, 10, 1638441, 10, 1638442, 10, 1638443, 10, 1638444, 10, 1638445, 10, 1638446, 10, 1638447, 10, 1638448, 10, 1638449, 10, 1638450, 10, 1638451, 10, 1638452, 10, 1638453, 10, 1638454, 10, 1638455, 10, 1638456, 10, 1638457, 10, 1638458, 10, 1638459, 10, 1638460, 10, 1638461, 10, 1638462, 10, 1638463, 10, 1638464, 10, 1638465, 10, 1638466, 10, 1638467, 10, 1638468, 10, 1638469, 10, 1638470, 10, 1638471, 10, 1703952, 10, 1703953, 10, 1703954, 10, 1703955, 10, 1703956, 10, 1703957, 10, 1703958, 10, 1703959, 10, 1703960, 10, 1703961, 10, 1703962, 10, 1703963, 10, 1703964, 10, 1703965, 10, 1703966, 10, 1703967, 10, 1703968, 10, 1703969, 10, 1703970, 10, 1703971, 10, 1703972, 10, 1703973, 10, 1703974, 10, 1703975, 10, 1703976, 10, 1703977, 10, 1703978, 10, 1703979, 10, 1703980, 10, 1703981, 10, 1703982, 10, 1703983, 10, 1703984, 10, 1703985, 10, 1703986, 10, 1703987, 10, 1703988, 10, 1703989, 10, 1703990, 10, 1703991, 10, 1703992, 10, 1703993, 10, 1703994, 10, 1703995, 10, 1703996, 10, 1703997, 10, 1703998, 10, 1703999, 10, 1704000, 10, 1704001, 10, 1704002, 10, 1704003, 10, 1704004, 10, 1704005, 10, 1704006, 10, 1704007, 10, 1769488, 10, 1769489, 10, 1769490, 10, 1769491, 10, 1769492, 10, 1769493, 10, 1769494, 10, 1769495, 10, 1769496, 10, 1769497, 10, 1769498, 10, 1769499, 10, 1769500, 10, 1769501, 10, 1769502, 10, 1769503, 10, 1769504, 10, 1769505, 10, 1769506, 10, 1769507, 10, 1769508, 10, 1769509, 10, 1769510, 10, 1769511, 10, 1769512, 10, 1769513, 10, 1769514, 10, 1769515, 10, 1769516, 10, 1769517, 10, 1769518, 10, 1769519, 10, 1769520, 10, 1769521, 10, 1769522, 10, 1769523, 10, 1769524, 10, 1769525, 10, 1769526, 10, 1769527, 10, 1769528, 10, 1769529, 10, 1769530, 10, 1769531, 10, 1769532, 10, 1769533, 10, 1769534, 10, 1769535, 10, 1769536, 10, 1769537, 10, 1769538, 10, 1769539, 10, 1769540, 10, 1769541, 10 )
-__meta__ = { "_edit_lock_":true }
-
-[node name="coins" type="Node" parent="."]
-
-[node name="coin" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 672, 1179 )
-linear_damp = 0.1
-
-[node name="coin 2" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 704, 1179 )
-linear_damp = 0.1
-
-[node name="coin 3" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 736, 1179 )
-linear_damp = 0.1
-
-[node name="coin 4" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1120, 992 )
-linear_damp = 0.1
-
-[node name="coin 5" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1152, 992 )
-linear_damp = 0.1
-
-[node name="coin 6" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1184, 992 )
-linear_damp = 0.1
-
-[node name="coin 7" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1216, 992 )
-linear_damp = 0.1
-
-[node name="coin 8" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1248, 992 )
-linear_damp = 0.1
-
-[node name="coin 9" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1568, 864 )
-linear_damp = 0.1
-
-[node name="coin 10" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1632, 864 )
-linear_damp = 0.1
-
-[node name="coin 11" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1824, 768 )
-linear_damp = 0.1
-
-[node name="coin 12" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1888, 768 )
-linear_damp = 0.1
-
-[node name="coin 13" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 2080, 672 )
-linear_damp = 0.1
-
-[node name="coin 14" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 2144, 672 )
-linear_damp = 0.1
-
-[node name="coin 15" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1792, 1248 )
-linear_damp = 0.1
-
-[node name="coin 16" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1856, 1248 )
-linear_damp = 0.1
-
-[node name="coin 17" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1920, 1248 )
-linear_damp = 0.1
-
-[node name="coin 18" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1920, 1184 )
-linear_damp = 0.1
-
-[node name="coin 19" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1856, 1184 )
-linear_damp = 0.1
-
-[node name="coin 20" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 1792, 1184 )
-linear_damp = 0.1
-
-[node name="coin 21" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 98.8868, 488.515 )
-linear_damp = 0.1
-
-[node name="coin 22" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 89.5989, 481.217 )
-linear_damp = 0.1
-
-[node name="coin 23" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 108.175, 481.217 )
-linear_damp = 0.1
-
-[node name="coin 24" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 116.136, 469.939 )
-linear_damp = 0.1
-
-[node name="coin 25" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 117.463, 457.997 )
-linear_damp = 0.1
-
-[node name="coin 26" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 106.184, 449.373 )
-linear_damp = 0.1
-
-[node name="coin 27" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 98.2234, 458.661 )
-linear_damp = 0.1
-
-[node name="coin 28" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 88.272, 448.71 )
-linear_damp = 0.1
-
-[node name="coin 29" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 79.6476, 457.334 )
-linear_damp = 0.1
-
-[node name="coin 30" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 82.9647, 468.612 )
-linear_damp = 0.1
-
-[node name="coin 31" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 3357.42, 465.288 )
-linear_damp = 0.1
-
-[node name="coin 31 2" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 3421.42, 465.288 )
-linear_damp = 0.1
-
-[node name="coin 31 3" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 3485.42, 465.288 )
-linear_damp = 0.1
-
-[node name="coin 31 4" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 3485.42, 401.288 )
-linear_damp = 0.1
-
-[node name="coin 31 5" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 3421.42, 401.288 )
-linear_damp = 0.1
-
-[node name="coin 31 6" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 3357.42, 401.288 )
-linear_damp = 0.1
-
-[node name="coin 32" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 4172.75, 605.058 )
-linear_damp = 0.1
-
-[node name="coin 31 7" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 4236.75, 605.058 )
-linear_damp = 0.1
-
-[node name="coin 31 7 2" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 4300.75, 605.058 )
-linear_damp = 0.1
-
-[node name="coin 31 7 3" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 4300.75, 541.058 )
-linear_damp = 0.1
-
-[node name="coin 31 7 4" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 4236.75, 541.058 )
-linear_damp = 0.1
-
-[node name="coin 31 7 5" parent="coins" instance=ExtResource( 2 )]
-
-transform/pos = Vector2( 4172.75, 541.058 )
-linear_damp = 0.1
-
-[node name="props" type="Node" parent="."]
-
-[node name="moving_platform" parent="props" instance=ExtResource( 3 )]
-
-transform/pos = Vector2( 1451.86, 742.969 )
-motion = Vector2( 0, 140 )
-cycle = 5.0
-
-[node name="moving_platform 2" parent="props" instance=ExtResource( 3 )]
-
-transform/pos = Vector2( 624.824, 545.544 )
-motion = Vector2( 300, 0 )
-cycle = 10.0
-
-[node name="moving_platform 3" parent="props" instance=ExtResource( 3 )]
-
-transform/pos = Vector2( 3419.86, 739.662 )
-motion = Vector2( 450, 0 )
-cycle = 10.0
-
-[node name="seesaw" parent="props" instance=ExtResource( 4 )]
-
-transform/pos = Vector2( 2402.79, 849.52 )
-
-[node name="one_way_platform" parent="props" instance=ExtResource( 5 )]
-
-transform/pos = Vector2( 927.698, 1120.81 )
-
-[node name="player" parent="." instance=ExtResource( 6 )]
-
-transform/pos = Vector2( 251.684, 1045.6 )
-
-[node name="music" type="StreamPlayer" parent="."]
-
-stream/stream = ExtResource( 7 )
-stream/play = false
-stream/loop = true
-stream/volume_db = 2.0
-stream/autoplay = true
-stream/paused = false
-stream/loop_restart_time = 0.0
-stream/buffering_ms = 500
-
-[node name="enemies" type="Node" parent="."]
-
-[node name="enemy 5" parent="enemies" instance=ExtResource( 8 )]
-
-transform/pos = Vector2( 834.664, 1309.6 )
-
-[node name="enemy 6" parent="enemies" instance=ExtResource( 8 )]
-
-transform/pos = Vector2( 707.665, 1225.05 )
-
-[node name="enemy 7" parent="enemies" instance=ExtResource( 8 )]
-
-transform/pos = Vector2( 1125.21, 1053.06 )
-
-[node name="enemy 8" parent="enemies" instance=ExtResource( 8 )]
-
-transform/pos = Vector2( 1292.11, 1059.24 )
-
-[node name="enemy 9" parent="enemies" instance=ExtResource( 8 )]
-
-transform/pos = Vector2( 1607.38, 923.239 )
-
-[node name="enemy 10" parent="enemies" instance=ExtResource( 8 )]
-
-transform/pos = Vector2( 2586.9, 939.059 )
-
-[node name="enemy 11" parent="enemies" instance=ExtResource( 8 )]
-
-transform/pos = Vector2( 1457.6, 688.741 )
-
-[node name="enemy 12" parent="enemies" instance=ExtResource( 8 )]
-
-transform/pos = Vector2( 1193.63, 460.381 )
-
-[node name="enemy 13" parent="enemies" instance=ExtResource( 8 )]
-
-transform/pos = Vector2( 3429.73, 540.865 )
-
-[node name="enemy 14" parent="enemies" instance=ExtResource( 8 )]
-
-transform/pos = Vector2( 3546.2, 1356.19 )
-
-[node name="enemy 15" parent="enemies" instance=ExtResource( 8 )]
-
-transform/pos = Vector2( 2406.63, 815.115 )
-
-[node name="parallax_bg" parent="." instance=ExtResource( 9 )]
-
-[node name="Label" type="Label" parent="."]
-
-focus/ignore_mouse = true
-focus/stop_mouse = true
-size_flags/horizontal = 2
-margin/left = 12.0
-margin/top = -202.0
-margin/right = 358.0
-margin/bottom = -10.0
-text = "This is a simple demo on how to make a platformer game with Godot.\"This version uses physics and the 2D physics engine for motion and collision.\"\"The demo also shows the benefits of using the scene system, where coins,\"enemies and the player are edited separatedly and instanced in the stage.\"\"To edit the base tiles for the tileset, open the tileset_edit.tscn file and follow \"instructions.\""
-autowrap = true
-percent_visible = 1.0
-lines_skipped = 0
-max_lines_visible = -1
-
-
diff --git a/demos/2d/platformer/tiles_demo.png b/demos/2d/platformer/tiles_demo.png
deleted file mode 100644
index bc738e6d38..0000000000
--- a/demos/2d/platformer/tiles_demo.png
+++ /dev/null
Binary files differ
diff --git a/demos/2d/platformer/tiles_demo.png.flags b/demos/2d/platformer/tiles_demo.png.flags
deleted file mode 100644
index efb2b8ce5f..0000000000
--- a/demos/2d/platformer/tiles_demo.png.flags
+++ /dev/null
@@ -1 +0,0 @@
-filter=false
diff --git a/demos/2d/platformer/tileset.tres b/demos/2d/platformer/tileset.tres
deleted file mode 100644
index 17b7dd3b4d..0000000000
--- a/demos/2d/platformer/tileset.tres
+++ /dev/null
@@ -1,195 +0,0 @@
-[gd_resource type="TileSet" load_steps=14 format=1]
-
-[ext_resource path="res://tiles_demo.png" type="Texture" id=1]
-
-[sub_resource type="ConvexPolygonShape2D" id=1]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, -24, 32, -24, 32, 32, -32, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=2]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, 32, -32, -24, 24, -24, 24, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=3]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, -32, 32, -32, 32, 32, -32, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=4]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, -56, 32, 8, 32, 64, -32, 64 )
-
-[sub_resource type="ConvexPolygonShape2D" id=5]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, 32, -32, -32, 24, -32, 24, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=6]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, -24, 32, -24, 32, 24, -32, 24 )
-
-[sub_resource type="ConvexPolygonShape2D" id=7]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, -24, 24, -24, 24, 24, -32, 24 )
-
-[sub_resource type="ConvexPolygonShape2D" id=8]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, 32, -32, -32, 24, -32, 24, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=9]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -64, 32, -64, -32, -8, -32, -8, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=10]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, 32, -32, -32, 24, -32, 32, -24, 32, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=11]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, 32, -32, -24, 32, -24, 32, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=12]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, 32, -32, -24, 32, -24, 32, 32 )
-
-[resource]
-
-0/name = "floor"
-0/texture = ExtResource( 1 )
-0/tex_offset = Vector2( 0, 0 )
-0/region = Rect2( 0, 0, 64, 64 )
-0/occluder_offset = Vector2( 32, 32 )
-0/navigation_offset = Vector2( 32, 32 )
-0/shape_offset = Vector2( 32, 32 )
-0/shapes = [ SubResource( 1 ) ]
-1/name = "edge"
-1/texture = ExtResource( 1 )
-1/tex_offset = Vector2( 0, 0 )
-1/region = Rect2( 64, 0, 64, 64 )
-1/occluder_offset = Vector2( 32, 32 )
-1/navigation_offset = Vector2( 32, 32 )
-1/shape_offset = Vector2( 32, 32 )
-1/shapes = [ SubResource( 2 ) ]
-2/name = "wall"
-2/texture = ExtResource( 1 )
-2/tex_offset = Vector2( 0, 0 )
-2/region = Rect2( 64, 64, 64, 64 )
-2/occluder_offset = Vector2( 32, 32 )
-2/navigation_offset = Vector2( 32, 32 )
-2/shape_offset = Vector2( 32, 32 )
-2/shapes = [ SubResource( 8 ) ]
-3/name = "wall_deco"
-3/texture = ExtResource( 1 )
-3/tex_offset = Vector2( 0, 0 )
-3/region = Rect2( 320, 128, 128, 64 )
-3/occluder_offset = Vector2( 64, 32 )
-3/navigation_offset = Vector2( 64, 32 )
-3/shape_offset = Vector2( 64, 32 )
-3/shapes = [ SubResource( 9 ) ]
-4/name = "corner"
-4/texture = ExtResource( 1 )
-4/tex_offset = Vector2( 0, 0 )
-4/region = Rect2( 64, 128, 64, 64 )
-4/occluder_offset = Vector2( 32, 32 )
-4/navigation_offset = Vector2( 32, 32 )
-4/shape_offset = Vector2( 32, 32 )
-4/shapes = [ SubResource( 10 ) ]
-5/name = "flowers"
-5/texture = ExtResource( 1 )
-5/tex_offset = Vector2( 0, 0 )
-5/region = Rect2( 192, 192, 64, 64 )
-5/occluder_offset = Vector2( 32, 32 )
-5/navigation_offset = Vector2( 32, 32 )
-5/shape_offset = Vector2( 32, 32 )
-5/shapes = [ SubResource( 11 ) ]
-6/name = "tree_base"
-6/texture = ExtResource( 1 )
-6/tex_offset = Vector2( 0, 0 )
-6/region = Rect2( 256, 192, 64, 64 )
-6/occluder_offset = Vector2( 32, 32 )
-6/navigation_offset = Vector2( 32, 32 )
-6/shape_offset = Vector2( 32, 32 )
-6/shapes = [ SubResource( 12 ) ]
-7/name = "tree_mid"
-7/texture = ExtResource( 1 )
-7/tex_offset = Vector2( 0, 0 )
-7/region = Rect2( 256, 128, 64, 64 )
-7/occluder_offset = Vector2( 32, 32 )
-7/navigation_offset = Vector2( 32, 32 )
-7/shape_offset = Vector2( 0, 0 )
-7/shapes = [ ]
-8/name = "tree_mid 2"
-8/texture = ExtResource( 1 )
-8/tex_offset = Vector2( 0, 0 )
-8/region = Rect2( 256, 64, 64, 64 )
-8/occluder_offset = Vector2( 32, 32 )
-8/navigation_offset = Vector2( 32, 32 )
-8/shape_offset = Vector2( 0, 0 )
-8/shapes = [ ]
-9/name = "tree_top"
-9/texture = ExtResource( 1 )
-9/tex_offset = Vector2( 0, 0 )
-9/region = Rect2( 256, 0, 64, 64 )
-9/occluder_offset = Vector2( 32, 32 )
-9/navigation_offset = Vector2( 32, 32 )
-9/shape_offset = Vector2( 0, 0 )
-9/shapes = [ ]
-10/name = "solid"
-10/texture = ExtResource( 1 )
-10/tex_offset = Vector2( 0, 0 )
-10/region = Rect2( 0, 64, 64, 64 )
-10/occluder_offset = Vector2( 32, 32 )
-10/navigation_offset = Vector2( 32, 32 )
-10/shape_offset = Vector2( 0, 0 )
-10/shapes = [ ]
-11/name = "ceiling"
-11/texture = ExtResource( 1 )
-11/tex_offset = Vector2( 0, 0 )
-11/region = Rect2( 384, 64, 64, 64 )
-11/occluder_offset = Vector2( 32, 32 )
-11/navigation_offset = Vector2( 32, 32 )
-11/shape_offset = Vector2( 32, 32 )
-11/shapes = [ SubResource( 3 ) ]
-12/name = "ramp"
-12/texture = ExtResource( 1 )
-12/tex_offset = Vector2( 0, 0 )
-12/region = Rect2( 128, 128, 64, 128 )
-12/occluder_offset = Vector2( 32, 64 )
-12/navigation_offset = Vector2( 32, 64 )
-12/shape_offset = Vector2( 32, 64 )
-12/shapes = [ SubResource( 4 ) ]
-13/name = "ceiling2wall"
-13/texture = ExtResource( 1 )
-13/tex_offset = Vector2( 0, 0 )
-13/region = Rect2( 448, 64, 64, 64 )
-13/occluder_offset = Vector2( 32, 32 )
-13/navigation_offset = Vector2( 32, 32 )
-13/shape_offset = Vector2( 32, 32 )
-13/shapes = [ SubResource( 5 ) ]
-14/name = "platform_floor"
-14/texture = ExtResource( 1 )
-14/tex_offset = Vector2( 0, 0 )
-14/region = Rect2( 128, 0, 64, 64 )
-14/occluder_offset = Vector2( 32, 32 )
-14/navigation_offset = Vector2( 32, 32 )
-14/shape_offset = Vector2( 32, 32 )
-14/shapes = [ SubResource( 6 ) ]
-15/name = "platform_edge"
-15/texture = ExtResource( 1 )
-15/tex_offset = Vector2( 0, 0 )
-15/region = Rect2( 192, 0, 64, 64 )
-15/occluder_offset = Vector2( 32, 32 )
-15/navigation_offset = Vector2( 32, 32 )
-15/shape_offset = Vector2( 32, 32 )
-15/shapes = [ SubResource( 7 ) ]
-
diff --git a/demos/2d/platformer/tileset_edit.tscn b/demos/2d/platformer/tileset_edit.tscn
deleted file mode 100644
index 733fada55d..0000000000
--- a/demos/2d/platformer/tileset_edit.tscn
+++ /dev/null
@@ -1,432 +0,0 @@
-[gd_scene load_steps=14 format=1]
-
-[ext_resource path="res://tiles_demo.png" type="Texture" id=1]
-
-[sub_resource type="ConvexPolygonShape2D" id=1]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, -24, 32, -24, 32, 32, -32, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=2]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, 32, -32, -24, 24, -24, 24, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=3]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, 32, -32, -32, 24, -32, 24, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=4]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -64, 32, -64, -32, -8, -32, -8, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=5]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, 32, -32, -32, 24, -32, 32, -24, 32, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=6]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, 32, -32, -24, 32, -24, 32, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=7]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, 32, -32, -24, 32, -24, 32, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=8]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, -32, 32, -32, 32, 32, -32, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=9]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, -56, 32, 8, 32, 64, -32, 64 )
-
-[sub_resource type="ConvexPolygonShape2D" id=10]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, 32, -32, -32, 24, -32, 24, 32 )
-
-[sub_resource type="ConvexPolygonShape2D" id=11]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, -24, 32, -24, 32, 24, -32, 24 )
-
-[sub_resource type="ConvexPolygonShape2D" id=12]
-
-custom_solver_bias = 0.0
-points = Vector2Array( -32, -24, 24, -24, 24, 24, -32, 24 )
-
-[node name="Node" type="Node"]
-
-[node name="floor" type="Sprite" parent="."]
-
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 0, 0, 64, 64 )
-
-[node name="collision" type="StaticBody2D" parent="floor"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 1 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-constant_linear_velocity = Vector2( 0, 0 )
-constant_angular_velocity = 0.0
-friction = 1.0
-bounce = 0.0
-
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="floor/collision"]
-
-build_mode = 0
-polygon = Vector2Array( 32, -24, 32, 32, -32, 32, -32, -24 )
-shape_range = Vector2( -1, -1 )
-trigger = false
-
-[node name="edge" type="Sprite" parent="."]
-
-transform/pos = Vector2( 64, 0 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 64, 0, 64, 64 )
-
-[node name="collision" type="StaticBody2D" parent="edge"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 2 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-constant_linear_velocity = Vector2( 0, 0 )
-constant_angular_velocity = 0.0
-friction = 1.0
-bounce = 0.0
-
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="edge/collision"]
-
-build_mode = 0
-polygon = Vector2Array( -32, -24, 24, -24, 24, 32, -32, 32 )
-shape_range = Vector2( -1, -1 )
-trigger = false
-
-[node name="wall" type="Sprite" parent="."]
-
-transform/pos = Vector2( 64, 64 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 64, 64, 64, 64 )
-
-[node name="collision" type="StaticBody2D" parent="wall"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 3 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-constant_linear_velocity = Vector2( 0, 0 )
-constant_angular_velocity = 0.0
-friction = 1.0
-bounce = 0.0
-
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="wall/collision"]
-
-build_mode = 0
-polygon = Vector2Array( -32, -32, 24, -32, 24, 32, -32, 32 )
-shape_range = Vector2( -1, -1 )
-trigger = false
-
-[node name="wall_deco" type="Sprite" parent="."]
-
-transform/pos = Vector2( 96, 128 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 320, 128, 128, 64 )
-
-[node name="collision" type="StaticBody2D" parent="wall_deco"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 4 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-constant_linear_velocity = Vector2( 0, 0 )
-constant_angular_velocity = 0.0
-friction = 1.0
-bounce = 0.0
-
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="wall_deco/collision"]
-
-build_mode = 0
-polygon = Vector2Array( -64, -32, -8, -32, -8, 32, -64, 32 )
-shape_range = Vector2( -1, -1 )
-trigger = false
-
-[node name="corner" type="Sprite" parent="."]
-
-transform/pos = Vector2( 64, 192 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 64, 128, 64, 64 )
-
-[node name="collision" type="StaticBody2D" parent="corner"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 5 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-constant_linear_velocity = Vector2( 0, 0 )
-constant_angular_velocity = 0.0
-friction = 1.0
-bounce = 0.0
-
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="corner/collision"]
-
-build_mode = 0
-polygon = Vector2Array( -32, -32, 24, -32, 32, -24, 32, 32, -32, 32 )
-shape_range = Vector2( -1, -1 )
-trigger = false
-
-[node name="flowers" type="Sprite" parent="."]
-
-transform/pos = Vector2( 128, 192 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 192, 192, 64, 64 )
-
-[node name="collision" type="StaticBody2D" parent="flowers"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 6 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-constant_linear_velocity = Vector2( 0, 0 )
-constant_angular_velocity = 0.0
-friction = 1.0
-bounce = 0.0
-
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="flowers/collision"]
-
-build_mode = 0
-polygon = Vector2Array( -32, 32, 32, 32, 32, -24, -32, -24 )
-shape_range = Vector2( -1, -1 )
-trigger = false
-
-[node name="tree_base" type="Sprite" parent="."]
-
-transform/pos = Vector2( 192, 192 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 256, 192, 64, 64 )
-
-[node name="collision" type="StaticBody2D" parent="tree_base"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 7 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-constant_linear_velocity = Vector2( 0, 0 )
-constant_angular_velocity = 0.0
-friction = 1.0
-bounce = 0.0
-
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="tree_base/collision"]
-
-build_mode = 0
-polygon = Vector2Array( -32, 32, 32, 32, 32, -24, -32, -24 )
-shape_range = Vector2( -1, -1 )
-trigger = false
-
-[node name="tree_mid" type="Sprite" parent="."]
-
-transform/pos = Vector2( 192, 128 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 256, 128, 64, 64 )
-
-[node name="tree_mid 2" type="Sprite" parent="."]
-
-transform/pos = Vector2( 192, 64 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 256, 64, 64, 64 )
-
-[node name="tree_top" type="Sprite" parent="."]
-
-transform/pos = Vector2( 192, 0 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 256, 0, 64, 64 )
-
-[node name="solid" type="Sprite" parent="."]
-
-transform/pos = Vector2( 0, 64 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 0, 64, 64, 64 )
-
-[node name="ceiling" type="Sprite" parent="."]
-
-transform/pos = Vector2( 0, 128 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 384, 64, 64, 64 )
-
-[node name="collision" type="StaticBody2D" parent="ceiling"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 8 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-constant_linear_velocity = Vector2( 0, 0 )
-constant_angular_velocity = 0.0
-friction = 1.0
-bounce = 0.0
-
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="ceiling/collision"]
-
-build_mode = 0
-polygon = Vector2Array( 32, -32, 32, 32, -32, 32, -32, -32 )
-shape_range = Vector2( -1, -1 )
-trigger = false
-
-[node name="ramp" type="Sprite" parent="."]
-
-transform/pos = Vector2( 256, 224 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 128, 128, 64, 128 )
-
-[node name="collision" type="StaticBody2D" parent="ramp"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 9 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-constant_linear_velocity = Vector2( 0, 0 )
-constant_angular_velocity = 0.0
-friction = 1.0
-bounce = 0.0
-
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="ramp/collision"]
-
-build_mode = 0
-polygon = Vector2Array( -32, -56, 32, 8, 32, 64, -32, 64 )
-shape_range = Vector2( -1, -1 )
-trigger = false
-
-[node name="ceiling2wall" type="Sprite" parent="."]
-
-transform/pos = Vector2( 0, 192 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 448, 64, 64, 64 )
-
-[node name="collision" type="StaticBody2D" parent="ceiling2wall"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 10 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-constant_linear_velocity = Vector2( 0, 0 )
-constant_angular_velocity = 0.0
-friction = 1.0
-bounce = 0.0
-
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="ceiling2wall/collision"]
-
-build_mode = 0
-polygon = Vector2Array( -32, -32, 24, -32, 24, 32, -32, 32 )
-shape_range = Vector2( -1, -1 )
-trigger = false
-
-[node name="platform_floor" type="Sprite" parent="."]
-
-transform/pos = Vector2( 0, 256 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 128, 0, 64, 64 )
-
-[node name="collision" type="StaticBody2D" parent="platform_floor"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 11 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-constant_linear_velocity = Vector2( 0, 0 )
-constant_angular_velocity = 0.0
-friction = 1.0
-bounce = 0.0
-
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="platform_floor/collision"]
-
-build_mode = 0
-polygon = Vector2Array( 32, -24, 32, 24, -32, 24, -32, -24 )
-shape_range = Vector2( -1, -1 )
-trigger = false
-
-[node name="platform_edge" type="Sprite" parent="."]
-
-transform/pos = Vector2( 64, 256 )
-texture = ExtResource( 1 )
-region = true
-region_rect = Rect2( 192, 0, 64, 64 )
-
-[node name="collision" type="StaticBody2D" parent="platform_edge"]
-
-input/pickable = false
-shapes/0/shape = SubResource( 12 )
-shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
-shapes/0/trigger = false
-collision/layers = 1
-collision/mask = 1
-constant_linear_velocity = Vector2( 0, 0 )
-constant_angular_velocity = 0.0
-friction = 1.0
-bounce = 0.0
-
-[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="platform_edge/collision"]
-
-build_mode = 0
-polygon = Vector2Array( 24, -24, 24, 24, -32, 24, -32, -24 )
-shape_range = Vector2( -1, -1 )
-trigger = false
-
-[node name="help" type="Label" parent="."]
-
-focus/ignore_mouse = true
-focus/stop_mouse = true
-size_flags/horizontal = 2
-margin/left = 1.0
-margin/top = 331.0
-margin/right = 727.0
-margin/bottom = 422.0
-text = "This scene serves as a tool for editing the tileset.\nNodes (sprites) and their respective collisionsare edited here.\n\nTo create a tileset from this, a \"TileSet\" resoucre must be created. Use the helper in: Scene -> Convert To -> TileSet.\nThis will save a tileset. Saving over it will merge your changes.\n\nFinally, the saved tileset resource (tileset.tres in this case), can be opened to be used into a TileMap node for editing a tile map."
-percent_visible = 1.0
-lines_skipped = 0
-max_lines_visible = -1
-
-