2
0
Эх сурвалжийг харах

Merge pull request #2853 from akien-mga/pr-demos-code-formatting

Improve demos code formatting and update to 2.0
Rémi Verschelde 9 жил өмнө
parent
commit
db9da15276
100 өөрчлөгдсөн 2960 нэмэгдсэн , 2737 устгасан
  1. 8 9
      demos/2d/area_input/input.gd
  2. BIN
      demos/2d/area_input/input.scn
  3. 7 11
      demos/2d/dynamic_collision_shapes/ball.gd
  4. BIN
      demos/2d/dynamic_collision_shapes/ball.scn
  5. 10 14
      demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd
  6. BIN
      demos/2d/dynamic_collision_shapes/dynamic_colobjs.scn
  7. 42 50
      demos/2d/fog_of_war/fog.gd
  8. BIN
      demos/2d/fog_of_war/fog.scn
  9. BIN
      demos/2d/fog_of_war/tile_edit.scn
  10. 14 19
      demos/2d/fog_of_war/troll.gd
  11. BIN
      demos/2d/fog_of_war/troll.scn
  12. 12 17
      demos/2d/hdr/beach_cave.gd
  13. BIN
      demos/2d/hdr/beach_cave.scn
  14. BIN
      demos/2d/hexamap/map.scn
  15. BIN
      demos/2d/hexamap/tiles.scn
  16. 13 18
      demos/2d/hexamap/troll.gd
  17. BIN
      demos/2d/hexamap/troll.scn
  18. BIN
      demos/2d/isometric/dungeon.scn
  19. BIN
      demos/2d/isometric/tileset.scn
  20. 13 18
      demos/2d/isometric/troll.gd
  21. BIN
      demos/2d/isometric/troll.scn
  22. BIN
      demos/2d/isometric_light/column.scn
  23. 53 64
      demos/2d/isometric_light/cubio.gd
  24. BIN
      demos/2d/isometric_light/cubio.scn
  25. 2 13
      demos/2d/isometric_light/map.gd
  26. BIN
      demos/2d/isometric_light/map.scn
  27. 7 13
      demos/2d/isometric_light/shoot.gd
  28. BIN
      demos/2d/isometric_light/shoot.scn
  29. BIN
      demos/2d/isometric_light/tileset_scene.scn
  30. BIN
      demos/2d/isometric_light/torch.scn
  31. 3 13
      demos/2d/kinematic_char/colworld.gd
  32. BIN
      demos/2d/kinematic_char/colworld.scn
  33. 1 1
      demos/2d/kinematic_char/engine.cfg
  34. 77 91
      demos/2d/kinematic_char/player.gd
  35. BIN
      demos/2d/kinematic_char/player.scn
  36. BIN
      demos/2d/kinematic_col/colworld.scn
  37. 9 14
      demos/2d/kinematic_col/player.gd
  38. BIN
      demos/2d/kinematic_col/player.scn
  39. BIN
      demos/2d/light_mask/lightmask.scn
  40. BIN
      demos/2d/lights_shadows/light_shadows.scn
  41. 14 24
      demos/2d/lookat/lookat.gd
  42. BIN
      demos/2d/lookat/lookat.scn
  43. 15 20
      demos/2d/motion/motion.gd
  44. BIN
      demos/2d/motion/motion.scn
  45. 27 37
      demos/2d/navpoly/navigation.gd
  46. BIN
      demos/2d/navpoly/navigation.scn
  47. BIN
      demos/2d/navpoly/navigation2.scn
  48. BIN
      demos/2d/normalmaps/normalmap.scn
  49. 137 122
      demos/2d/particles/particles.xml
  50. 4 9
      demos/2d/platformer/bullet.gd
  51. 135 138
      demos/2d/platformer/bullet.xml
  52. 5 14
      demos/2d/platformer/coin.gd
  53. 143 150
      demos/2d/platformer/coin.xml
  54. 38 53
      demos/2d/platformer/enemy.gd
  55. 53 45
      demos/2d/platformer/enemy.xml
  56. 7 14
      demos/2d/platformer/moving_platform.gd
  57. 117 97
      demos/2d/platformer/moving_platform.xml
  58. 27 40
      demos/2d/platformer/one_way_platform.xml
  59. 154 97
      demos/2d/platformer/parallax_bg.xml
  60. 104 133
      demos/2d/platformer/player.gd
  61. 108 94
      demos/2d/platformer/player.xml
  62. 120 87
      demos/2d/platformer/seesaw.xml
  63. 28 27
      demos/2d/platformer/stage.xml
  64. 24 45
      demos/2d/platformer/tileset_edit.xml
  65. 38 44
      demos/2d/pong/pong.gd
  66. 107 99
      demos/2d/pong/pong.xml
  67. 117 93
      demos/2d/rubegoldberg/ball.xml
  68. 157 85
      demos/2d/rubegoldberg/box.xml
  69. 158 86
      demos/2d/rubegoldberg/domino.xml
  70. 121 84
      demos/2d/rubegoldberg/pendulum.xml
  71. 106 82
      demos/2d/rubegoldberg/platform.xml
  72. 116 65
      demos/2d/rubegoldberg/rubegoldberg.xml
  73. 170 96
      demos/2d/rubegoldberg/seesaw.xml
  74. 6 13
      demos/2d/screen_space_shaders/screen_shaders.gd
  75. BIN
      demos/2d/screen_space_shaders/screen_shaders.scn
  76. BIN
      demos/2d/sdf_font/sdf.scn
  77. 27 32
      demos/2d/shower_of_bullets/bullets.gd
  78. 11 18
      demos/2d/shower_of_bullets/shower.gd
  79. BIN
      demos/2d/shower_of_bullets/shower.scn
  80. 18 24
      demos/2d/space_shooter/asteroid.gd
  81. BIN
      demos/2d/space_shooter/asteroid.scn
  82. 14 15
      demos/2d/space_shooter/enemy1.gd
  83. BIN
      demos/2d/space_shooter/enemy1.scn
  84. 23 28
      demos/2d/space_shooter/enemy2.gd
  85. BIN
      demos/2d/space_shooter/enemy2.scn
  86. 9 10
      demos/2d/space_shooter/enemy_shot.gd
  87. BIN
      demos/2d/space_shooter/enemy_shot.scn
  88. BIN
      demos/2d/space_shooter/explosion.scn
  89. 9 11
      demos/2d/space_shooter/game_state.gd
  90. BIN
      demos/2d/space_shooter/level.scn
  91. BIN
      demos/2d/space_shooter/level_tiles.scn
  92. 2 11
      demos/2d/space_shooter/main_menu.gd
  93. BIN
      demos/2d/space_shooter/main_menu.scn
  94. BIN
      demos/2d/space_shooter/parallax.scn
  95. 6 12
      demos/2d/space_shooter/rail.gd
  96. 29 36
      demos/2d/space_shooter/ship.gd
  97. BIN
      demos/2d/space_shooter/ship.scn
  98. 13 21
      demos/2d/space_shooter/shot.gd
  99. BIN
      demos/2d/space_shooter/shot.scn
  100. 172 161
      demos/2d/splash/splash.xml

+ 8 - 9
demos/2d/area_input/input.gd

@@ -1,16 +1,15 @@
 
 extends Area2D
 
-#virtual from CollisionObject2D (also available as signal)
+
+# Virtual from CollisionObject2D (also available as signal)
 func _input_event(viewport, event, shape_idx):
-	#convert event to local coordinates
-	if (event.type==InputEvent.MOUSE_MOTION):
-		event = make_input_local( event )
+	# Convert event to local coordinates
+	if (event.type == InputEvent.MOUSE_MOTION):
+		event = make_input_local(event)
 		get_node("label").set_text(str(event.pos))
-		
-#virtual from CollisionObject2D (also available as signal)
-func _mouse_exit():
-		get_node("label").set_text("")
-		
 
 
+# Virtual from CollisionObject2D (also available as signal)
+func _mouse_exit():
+	get_node("label").set_text("")

BIN
demos/2d/area_input/input.scn


+ 7 - 11
demos/2d/dynamic_collision_shapes/ball.gd

@@ -1,21 +1,17 @@
 
 extends RigidBody2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
+var timeout = 5
 
-var timeout=5
 
 func _process(delta):
-	timeout-=delta
-	if (timeout<1):
+	timeout -= delta
+	if (timeout < 1):
 		set_opacity(timeout)
-	if (timeout<0):
+	if (timeout < 0):
 		queue_free()
-func _ready():
-	set_process(true)
-	# Initialization here
-	pass
 
 
+func _ready():
+	set_process(true)

BIN
demos/2d/dynamic_collision_shapes/ball.scn


+ 10 - 14
demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd

@@ -1,23 +1,19 @@
 
 extends Node2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
-const EMIT_INTERVAL=0.1
-var timeout=EMIT_INTERVAL
+# Member variables
+const EMIT_INTERVAL = 0.1
+var timeout = EMIT_INTERVAL
+
 
 func _process(delta):
-	timeout-=delta
-	if (timeout<0):
-		timeout=EMIT_INTERVAL
+	timeout -= delta
+	if (timeout < 0):
+		timeout = EMIT_INTERVAL
 		var ball = preload("res://ball.scn").instance()
-		ball.set_pos( Vector2(randf() * get_viewport_rect().size.x, 0) )
+		ball.set_pos(Vector2(randf()*get_viewport_rect().size.x, 0))
 		add_child(ball)
-			
-func _ready():
-	set_process(true)
-	# Initialization here
-	pass
 
 
+func _ready():
+	set_process(true)

BIN
demos/2d/dynamic_collision_shapes/dynamic_colobjs.scn


+ 42 - 50
demos/2d/fog_of_war/fog.gd

@@ -1,86 +1,78 @@
 
 extends TileMap
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
 
-# boundarys for the fog rectangle
-var x_min = -20 # left start tile
-var x_max = 20 # right end tile
-var y_min = -20 # top start tile
-var y_max = 20 # bottom end tile
+# Boundaries for the fog rectangle
+var x_min = -20 # Left start tile
+var x_max = 20 # Right end tile
+var y_min = -20 # Top start tile
+var y_max = 20 # Bottom end tile
 
-var position # players position
+var position # Player's position
 
-# iteration variables
+# Iteration variables
 var x
 var y
 
-# variable to check if player moved
+# Variables to check if the player moved
 var x_old
 var y_old
 
-# array to build up the visible area like a square
-# first value determines the width/height of the tip
-# here it would be 2*2 + 1 = 5 tiles wide/high
-# second value determines the total squares size
-# here it would be 5*2 + 1 = 10 tiles wide/high
-var l = range(2,5)
+# Array to build up the visible area like a square.
+# First value determines the width/height of the tip.
+# Here it would be 2*2 + 1 = 5 tiles wide/high.
+# Second value determines the total squares size.
+# Here it would be 5*2 + 1 = 10 tiles wide/high.
+var l = range(2, 5)
 
-# process that runs in realtime
+
+# Process that runs in realtime
 func _fixed_process(delta):
 	position = get_node("../troll").get_pos()
 	
-	# calculate the corresponding tile
+	# Calculate the corresponding tile
 	# from the players position
 	x = int(position.x/get_cell_size().x)
-	# switching from positive to negative tile positions
+	# Switching from positive to negative tile positions
 	# causes problems because of rounding problems
 	if position.x < 0:
-		x -= 1 # correct negative values
+		x -= 1 # Correct negative values
 	
 	y = int(position.y/get_cell_size().y)
-	if position.y < 0:
+	if (position.y < 0):
 		y -= 1
-		
-	# check if the player moved one tile further
-	if (x_old != x) or (y_old != y):
-		
-		# create the transparent part (visited area)
-		var end = l.size()-1
+	
+	# Check if the player moved one tile further
+	if ((x_old != x) or (y_old != y)):
+		# Create the transparent part (visited area)
+		var end = l.size() - 1
 		var start = 0
 		for steps in range(l.size()):
-			for m in range(x-l[end]-1,x+l[end]+2):
-				for n in range(y-l[start]-1,y+l[start]+2):
-					if get_cell(m,n) != 0:
-						set_cell(m,n,1,0,0)
+			for m in range(x - l[end] - 1, x + l[end] + 2):
+				for n in range(y - l[start] - 1, y + l[start] + 2):
+					if (get_cell(m, n) != 0):
+						set_cell(m, n, 1, 0, 0)
 			end -= 1
 			start += 1
-	
-		# create the actual and active visible part
-		var end = l.size()-1
+		
+		# Create the actual and active visible part
+		var end = l.size() - 1
 		var start = 0
 		for steps in range(l.size()):
-			for m in range(x-l[end],x+l[end]+1):
-				for n in range(y-l[start],y+l[start]+1):
-					set_cell(m,n,-1)
+			for m in range(x - l[end], x + l[end] + 1):
+				for n in range(y - l[start], y + l[start] + 1):
+					set_cell(m, n, -1)
 			end -= 1
 			start += 1
-		
+	
 	x_old = x
 	y_old = y
-	
-	pass
+
 
 func _ready():
-	# Initalization here
-	
-	# create a square filled with the 100% opaque fog
-	for x in range(x_min,x_max):
-		for y in range(y_min,y_max):
-			set_cell(x,y,0,0,0)
+	# Create a square filled with the 100% opaque fog
+	for x in range(x_min, x_max):
+		for y in range(y_min, y_max):
+			set_cell(x, y, 0, 0, 0)
 	set_fixed_process(true)
-	pass
-
-

BIN
demos/2d/fog_of_war/fog.scn


BIN
demos/2d/fog_of_war/tile_edit.scn


+ 14 - 19
demos/2d/fog_of_war/troll.gd

@@ -2,42 +2,37 @@
 extends KinematicBody2D
 
 # This is a simple collision demo showing how
-# the kinematic cotroller works.
+# the kinematic controller works.
 # move() will allow to move the node, and will
-# always move it to a non-colliding spot, 
+# always move it to a non-colliding spot,
 # as long as it starts from a non-colliding spot too.
 
+# Member variables
+const MOTION_SPEED = 160 # Pixels/second
 
-#pixels / second
-const MOTION_SPEED=160
 
 func _fixed_process(delta):
-
 	var motion = Vector2()
 	
 	if (Input.is_action_pressed("move_up")):
-		motion+=Vector2(0,-1)
+		motion += Vector2(0, -1)
 	if (Input.is_action_pressed("move_bottom")):
-		motion+=Vector2(0,1)
+		motion += Vector2(0, 1)
 	if (Input.is_action_pressed("move_left")):
-		motion+=Vector2(-1,0)
+		motion += Vector2(-1, 0)
 	if (Input.is_action_pressed("move_right")):
-		motion+=Vector2(1,0)
+		motion += Vector2(1, 0)
 	
-	motion = motion.normalized() * MOTION_SPEED * delta
+	motion = motion.normalized()*MOTION_SPEED*delta
 	motion = move(motion)
 	
-	#make character slide nicely through the world	
+	# Make character slide nicely through the world
 	var slide_attempts = 4
-	while(is_colliding() and slide_attempts>0):
+	while(is_colliding() and slide_attempts > 0):
 		motion = get_collision_normal().slide(motion)
-		motion=move(motion)
-		slide_attempts-=1
-	
+		motion = move(motion)
+		slide_attempts -= 1
+
 
 func _ready():
-	# Initalization here
 	set_fixed_process(true)
-	pass
-
-

BIN
demos/2d/fog_of_war/troll.scn


+ 12 - 17
demos/2d/hdr/beach_cave.gd

@@ -1,26 +1,21 @@
 
 extends Node2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
-const CAVE_LIMIT=1000
+# Member variables
+const CAVE_LIMIT = 1000
 
-func _input(ev):
-	if (ev.type==InputEvent.MOUSE_MOTION and ev.button_mask&1):
-		var rel_x = ev.relative_x
+
+func _input(event):
+	if (event.type == InputEvent.MOUSE_MOTION and event.button_mask&1):
+		var rel_x = event.relative_x
 		var cavepos = get_node("cave").get_pos()
-		cavepos.x+=rel_x
-		if (cavepos.x<-CAVE_LIMIT):
-			cavepos.x=-CAVE_LIMIT
-		elif (cavepos.x>0):
-			cavepos.x=0
+		cavepos.x += rel_x
+		if (cavepos.x < -CAVE_LIMIT):
+			cavepos.x = -CAVE_LIMIT
+		elif (cavepos.x > 0):
+			cavepos.x = 0
 		get_node("cave").set_pos(cavepos)
-			
+
 
 func _ready():
 	set_process_input(true)
-	# Initialization here
-	pass
-
-

BIN
demos/2d/hdr/beach_cave.scn


BIN
demos/2d/hexamap/map.scn


BIN
demos/2d/hexamap/tiles.scn


+ 13 - 18
demos/2d/hexamap/troll.gd

@@ -2,42 +2,37 @@
 extends KinematicBody2D
 
 # This is a simple collision demo showing how
-# the kinematic cotroller works.
+# the kinematic controller works.
 # move() will allow to move the node, and will
 # always move it to a non-colliding spot, 
 # as long as it starts from a non-colliding spot too.
 
+# Member variables
+const MOTION_SPEED = 160 # Pixels/second
 
-#pixels / second
-const MOTION_SPEED=160
 
 func _fixed_process(delta):
-
 	var motion = Vector2()
 	
 	if (Input.is_action_pressed("move_up")):
-		motion+=Vector2(0,-1)
+		motion += Vector2(0, -1)
 	if (Input.is_action_pressed("move_bottom")):
-		motion+=Vector2(0,1)
+		motion += Vector2(0, 1)
 	if (Input.is_action_pressed("move_left")):
-		motion+=Vector2(-1,0)
+		motion += Vector2(-1, 0)
 	if (Input.is_action_pressed("move_right")):
-		motion+=Vector2(1,0)
+		motion += Vector2(1, 0)
 	
-	motion = motion.normalized() * MOTION_SPEED * delta
+	motion = motion.normalized()*MOTION_SPEED*delta
 	motion = move(motion)
 	
-	#make character slide nicely through the world	
+	# Make character slide nicely through the world
 	var slide_attempts = 4
-	while(is_colliding() and slide_attempts>0):
+	while(is_colliding() and slide_attempts > 0):
 		motion = get_collision_normal().slide(motion)
-		motion=move(motion)
-		slide_attempts-=1
-	
+		motion = move(motion)
+		slide_attempts -= 1
+
 
 func _ready():
-	# Initalization here
 	set_fixed_process(true)
-	pass
-
-

BIN
demos/2d/hexamap/troll.scn


BIN
demos/2d/isometric/dungeon.scn


BIN
demos/2d/isometric/tileset.scn


+ 13 - 18
demos/2d/isometric/troll.gd

@@ -2,42 +2,37 @@
 extends KinematicBody2D
 
 # This is a simple collision demo showing how
-# the kinematic cotroller works.
+# the kinematic controller works.
 # move() will allow to move the node, and will
 # always move it to a non-colliding spot, 
 # as long as it starts from a non-colliding spot too.
 
+# Member variables
+const MOTION_SPEED = 160 # Pixels/seconds
 
-#pixels / second
-const MOTION_SPEED=160
 
 func _fixed_process(delta):
-
 	var motion = Vector2()
 	
 	if (Input.is_action_pressed("move_up")):
-		motion+=Vector2(0,-1)
+		motion += Vector2(0, -1)
 	if (Input.is_action_pressed("move_bottom")):
-		motion+=Vector2(0,1)
+		motion += Vector2(0, 1)
 	if (Input.is_action_pressed("move_left")):
-		motion+=Vector2(-1,0)
+		motion += Vector2(-1, 0)
 	if (Input.is_action_pressed("move_right")):
-		motion+=Vector2(1,0)
+		motion += Vector2(1, 0)
 	
-	motion = motion.normalized() * MOTION_SPEED * delta
+	motion = motion.normalized()*MOTION_SPEED*delta
 	motion = move(motion)
 	
-	#make character slide nicely through the world	
+	# Make character slide nicely through the world
 	var slide_attempts = 4
-	while(is_colliding() and slide_attempts>0):
+	while(is_colliding() and slide_attempts > 0):
 		motion = get_collision_normal().slide(motion)
-		motion=move(motion)
-		slide_attempts-=1
-	
+		motion = move(motion)
+		slide_attempts -= 1
+
 
 func _ready():
-	# Initalization here
 	set_fixed_process(true)
-	pass
-
-

BIN
demos/2d/isometric/troll.scn


BIN
demos/2d/isometric_light/column.scn


+ 53 - 64
demos/2d/isometric_light/cubio.gd

@@ -1,96 +1,85 @@
 
 extends KinematicBody2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
 const MAX_SPEED = 300.0
 const IDLE_SPEED = 10.0
-const ACCEL=5.0
-const VSCALE=0.5
-const SHOOT_INTERVAL=0.3
+const ACCEL = 5.0
+const VSCALE = 0.5
+const SHOOT_INTERVAL = 0.3
+
+var speed = Vector2()
+var current_anim = ""
+var current_mirror = false
 
-var speed=Vector2()
-var current_anim=""
-var current_mirror=false
+var shoot_countdown = 0
 
-var shoot_countdown=0
 
-func _input(ev):
-	if (ev.type==InputEvent.MOUSE_BUTTON and ev.button_index==1 and ev.pressed and shoot_countdown<=0):
-		var pos = get_canvas_transform().affine_inverse() * ev.pos
-		var dir = (pos-get_global_pos()).normalized()
+func _input(event):
+	if (event.type == InputEvent.MOUSE_BUTTON and event.button_index == 1 and event.pressed and shoot_countdown <= 0):
+		var pos = get_canvas_transform().affine_inverse()*event.pos
+		var dir = (pos - get_global_pos()).normalized()
 		var bullet = preload("res://shoot.scn").instance()
-		bullet.advance_dir=dir
-		bullet.set_pos( get_global_pos() + dir * 60 )
+		bullet.advance_dir = dir
+		bullet.set_pos(get_global_pos() + dir*60)
 		get_parent().add_child(bullet)
-		shoot_countdown=SHOOT_INTERVAL
-		
-		
-		
+		shoot_countdown = SHOOT_INTERVAL
+
 
 func _fixed_process(delta):
-	
-	shoot_countdown-=delta
+	shoot_countdown -= delta
 	var dir = Vector2()
 	if (Input.is_action_pressed("up")):
-		dir+=Vector2(0,-1)
+		dir += Vector2(0, -1)
 	if (Input.is_action_pressed("down")):
-		dir+=Vector2(0,1)
+		dir += Vector2(0, 1)
 	if (Input.is_action_pressed("left")):
-		dir+=Vector2(-1,0)
+		dir += Vector2(-1, 0)
 	if (Input.is_action_pressed("right")):
-		dir+=Vector2(1,0)
-		
-	if (dir!=Vector2()):
-		dir=dir.normalized()
-	speed = speed.linear_interpolate(dir*MAX_SPEED,delta*ACCEL)
-	var motion = speed * delta
-	motion.y*=VSCALE
-	motion=move(motion)
+		dir += Vector2(1, 0)
+	
+	if (dir != Vector2()):
+		dir = dir.normalized()
+	speed = speed.linear_interpolate(dir*MAX_SPEED, delta*ACCEL)
+	var motion = speed*delta
+	motion.y *= VSCALE
+	motion = move(motion)
 	
 	if (is_colliding()):
 		var n = get_collision_normal()
-		motion=n.slide(motion)
+		motion = n.slide(motion)
 		move(motion)
 
-	var next_anim=""
-	var next_mirror=false
+	var next_anim = ""
+	var next_mirror = false
 	
-	if (dir==Vector2() and speed.length()<IDLE_SPEED):
-		next_anim="idle"
-		next_mirror=false
-	elif (speed.length()>IDLE_SPEED*0.1):
-		var angle = atan2(abs(speed.x),speed.y)	
+	if (dir == Vector2() and speed.length() < IDLE_SPEED):
+		next_anim = "idle"
+		next_mirror = false
+	elif (speed.length() > IDLE_SPEED*0.1):
+		var angle = atan2(abs(speed.x), speed.y)
 		
-		next_mirror = speed.x>0
-		if (angle<PI/8):
-			next_anim="bottom"
-			next_mirror=false
-		elif (angle<PI/4+PI/8):
-			next_anim="bottom_left"
-		elif (angle<PI*2/4+PI/8):
-			next_anim="left"
-		elif (angle<PI*3/4+PI/8):
-			next_anim="top_left"
+		next_mirror = speed.x > 0
+		if (angle < PI/8):
+			next_anim = "bottom"
+			next_mirror = false
+		elif (angle < PI/4 + PI/8):
+			next_anim = "bottom_left"
+		elif (angle < PI*2/4 + PI/8):
+			next_anim = "left"
+		elif (angle < PI*3/4 + PI/8):
+			next_anim = "top_left"
 		else:
-			next_anim="top"
-			next_mirror=false
-		
-			
-	if (next_anim!=current_anim or next_mirror!=current_mirror):
+			next_anim = "top"
+			next_mirror = false
+	
+	if (next_anim != current_anim or next_mirror != current_mirror):
 		get_node("frames").set_flip_h(next_mirror)
 		get_node("anim").play(next_anim)
-		current_anim=next_anim
-		current_mirror=next_mirror
-		
+		current_anim = next_anim
+		current_mirror = next_mirror
 
 
 func _ready():
-	# Initialization here
 	set_fixed_process(true)
 	set_process_input(true)
-	pass
-
-

BIN
demos/2d/isometric_light/cubio.scn


+ 2 - 13
demos/2d/isometric_light/map.gd

@@ -1,18 +1,7 @@
 
 extends Node2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
 
-func _ready():
-	# Initialization here
-	pass
-
-
-
-
-func _on_prince_area_body_enter( body ):
-	if (body.get_name()=="cubio"):
+func _on_prince_area_body_enter(body):
+	if (body.get_name() == "cubio"):
 		get_node("message").show()
-	pass # replace with function body

BIN
demos/2d/isometric_light/map.scn


+ 7 - 13
demos/2d/isometric_light/shoot.gd

@@ -1,27 +1,21 @@
 
 extends KinematicBody2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-var advance_dir=Vector2(1,0)
+# Member variables
 const ADVANCE_SPEED = 500.0
 
-var hit=false
+var advance_dir = Vector2(1, 0)
+var hit = false
+
 
 func _fixed_process(delta):
-	
 	if (hit):
 		return
-	move(advance_dir*delta*ADVANCE_SPEED)	
+	move(advance_dir*delta*ADVANCE_SPEED)
 	if (is_colliding()):
 		get_node("anim").play("explode")
-		hit=true
+		hit = true
+
 
 func _ready():
-	# Initialization here
 	set_fixed_process(true)
-	pass
-
-

BIN
demos/2d/isometric_light/shoot.scn


BIN
demos/2d/isometric_light/tileset_scene.scn


BIN
demos/2d/isometric_light/torch.scn


+ 3 - 13
demos/2d/kinematic_char/colworld.gd

@@ -1,18 +1,8 @@
 
 extends Node2D
 
-#member variables here, example:
-#var a=2
-#var b="textvar"
 
-func _ready():
-	#Initalization here
-	pass
-
-
-
-
-func _on_princess_body_enter( body ):
-	#the name of this editor-generated callback is unfortunate
-	if (body.get_name()=="player"):
+func _on_princess_body_enter(body):
+	# The name of this editor-generated callback is unfortunate
+	if (body.get_name() == "player"):
 		get_node("youwin").show()

BIN
demos/2d/kinematic_char/colworld.scn


+ 1 - 1
demos/2d/kinematic_char/engine.cfg

@@ -1,6 +1,6 @@
 [application]
 
-name="Kinematic Collision"
+name="Kinematic Character"
 main_scene="res://colworld.scn"
 icon="res://icon.png"
 

+ 77 - 91
demos/2d/kinematic_char/player.gd

@@ -1,137 +1,123 @@
 
 extends KinematicBody2D
 
-#This is a simple collision demo showing how
-#the kinematic cotroller works.
-#move() will allow to move the node, and will
-#always move it to a non-colliding spot, 
-#as long as it starts from a non-colliding spot too.
+# This is a simple collision demo showing how
+# the kinematic controller works.
+# move() will allow to move the node, and will
+# always move it to a non-colliding spot,
+# as long as it starts from a non-colliding spot too.
 
+# Member variables
+const GRAVITY = 500.0 # Pixels/second
 
-#pixels / second
-const GRAVITY = 500.0
-
-#Angle in degrees towards either side that the player can 
-#consider "floor".
+# Angle in degrees towards either side that the player can consider "floor"
 const FLOOR_ANGLE_TOLERANCE = 40
 const WALK_FORCE = 600
-const WALK_MIN_SPEED=10
+const WALK_MIN_SPEED = 10
 const WALK_MAX_SPEED = 200
 const STOP_FORCE = 1300
 const JUMP_SPEED = 200
-const JUMP_MAX_AIRBORNE_TIME=0.2
+const JUMP_MAX_AIRBORNE_TIME = 0.2
 
-const SLIDE_STOP_VELOCITY=1.0 #one pixel per second
-const SLIDE_STOP_MIN_TRAVEL=1.0 #one pixel
+const SLIDE_STOP_VELOCITY = 1.0 # One pixel per second
+const SLIDE_STOP_MIN_TRAVEL = 1.0 # One pixel
 
 var velocity = Vector2()
-var on_air_time=100
-var jumping=false
+var on_air_time = 100
+var jumping = false
 
-var prev_jump_pressed=false
+var prev_jump_pressed = false
 
-func _fixed_process(delta):
 
-	#create forces
-	var force = Vector2(0,GRAVITY)
+func _fixed_process(delta):
+	# Create forces
+	var force = Vector2(0, GRAVITY)
 	
 	var walk_left = Input.is_action_pressed("move_left")
 	var walk_right = Input.is_action_pressed("move_right")
 	var jump = Input.is_action_pressed("jump")
-
-	var stop=true
+	
+	var stop = true
 	
 	if (walk_left):
-		if (velocity.x<=WALK_MIN_SPEED and velocity.x > -WALK_MAX_SPEED):
-			force.x-=WALK_FORCE			
-			stop=false
-		
+		if (velocity.x <= WALK_MIN_SPEED and velocity.x > -WALK_MAX_SPEED):
+			force.x -= WALK_FORCE
+			stop = false
 	elif (walk_right):
-		if (velocity.x>=-WALK_MIN_SPEED and velocity.x < WALK_MAX_SPEED):
-			force.x+=WALK_FORCE
-			stop=false
+		if (velocity.x >= -WALK_MIN_SPEED and velocity.x < WALK_MAX_SPEED):
+			force.x += WALK_FORCE
+			stop = false
 	
 	if (stop):
 		var vsign = sign(velocity.x)
 		var vlen = abs(velocity.x)
 		
-		vlen -= STOP_FORCE * delta
-		if (vlen<0):
-			vlen=0
-			
-		velocity.x=vlen*vsign
+		vlen -= STOP_FORCE*delta
+		if (vlen < 0):
+			vlen = 0
 		
-
-		
-	#integrate forces to velocity
-	velocity += force * delta
+		velocity.x = vlen*vsign
 	
-	#integrate velocity into motion and move
-	var motion = velocity * delta
-
-	#move and consume motion
+	# Integrate forces to velocity
+	velocity += force*delta
+	
+	# Integrate velocity into motion and move
+	var motion = velocity*delta
+	
+	# Move and consume motion
 	motion = move(motion)
-
-
-	var floor_velocity=Vector2()
-
+	
+	var floor_velocity = Vector2()
+	
 	if (is_colliding()):
-		# you can check which tile was collision against with this
+		# You can check which tile was collision against with this
 		# print(get_collider_metadata())
-
-		#ran against something, is it the floor? get normal
+		
+		# Ran against something, is it the floor? Get normal
 		var n = get_collision_normal()
-
-		if ( rad2deg(acos(n.dot( Vector2(0,-1)))) < FLOOR_ANGLE_TOLERANCE ):
-			#if angle to the "up" vectors is < angle tolerance
-			#char is on floor
-			on_air_time=0
-			floor_velocity=get_collider_velocity()
-			
-
-		if (on_air_time==0 and force.x==0 and get_travel().length() < SLIDE_STOP_MIN_TRAVEL and abs(velocity.x) < SLIDE_STOP_VELOCITY and get_collider_velocity()==Vector2()):
-			#Since this formula will always slide the character around, 
-			#a special case must be considered to to stop it from moving 
-			#if standing on an inclined floor. Conditions are:
-			# 1) Standing on floor (on_air_time==0)
+		
+		if (rad2deg(acos(n.dot(Vector2(0, -1)))) < FLOOR_ANGLE_TOLERANCE):
+			# If angle to the "up" vectors is < angle tolerance
+			# char is on floor
+			on_air_time = 0
+			floor_velocity = get_collider_velocity()
+		
+		if (on_air_time == 0 and force.x == 0 and get_travel().length() < SLIDE_STOP_MIN_TRAVEL and abs(velocity.x) < SLIDE_STOP_VELOCITY and get_collider_velocity() == Vector2()):
+			# Since this formula will always slide the character around, 
+			# a special case must be considered to to stop it from moving 
+			# if standing on an inclined floor. Conditions are:
+			# 1) Standing on floor (on_air_time == 0)
 			# 2) Did not move more than one pixel (get_travel().length() < SLIDE_STOP_MIN_TRAVEL)
 			# 3) Not moving horizontally (abs(velocity.x) < SLIDE_STOP_VELOCITY)
 			# 4) Collider is not moving
-						
+			
 			revert_motion()
-			velocity.y=0.0
-
+			velocity.y = 0.0
 		else:
-			#For every other case of motion,our motion was interrupted.
-			#Try to complete the motion by "sliding"
-			#by the normal				
-			
+			# For every other case of motion, our motion was interrupted.
+			# Try to complete the motion by "sliding" by the normal
 			motion = n.slide(motion)
-			velocity = n.slide(velocity)		
-			#then move again
+			velocity = n.slide(velocity)
+			# Then move again
 			move(motion)
-
-	if (floor_velocity!=Vector2()):
-		#if floor moves, move with floor
+	
+	if (floor_velocity != Vector2()):
+		# If floor moves, move with floor
 		move(floor_velocity*delta)
-
-	if (jumping and velocity.y>0):
-		#if falling, no longer jumping
-		jumping=false
-		
-	if (on_air_time<JUMP_MAX_AIRBORNE_TIME and jump and not prev_jump_pressed and not jumping):	
-		# Jump must also be allowed to happen if the
-		# character left the floor a little bit ago.
+	
+	if (jumping and velocity.y > 0):
+		# If falling, no longer jumping
+		jumping = false
+	
+	if (on_air_time < JUMP_MAX_AIRBORNE_TIME and jump and not prev_jump_pressed and not jumping):
+		# Jump must also be allowed to happen if the character left the floor a little bit ago.
 		# Makes controls more snappy.
-		velocity.y=-JUMP_SPEED	
-		jumping=true
-		
-	on_air_time+=delta
-	prev_jump_pressed=jump	
+		velocity.y = -JUMP_SPEED
+		jumping = true
+	
+	on_air_time += delta
+	prev_jump_pressed = jump
+
 
 func _ready():
-	#Initalization here
 	set_fixed_process(true)
-	pass
-
-

BIN
demos/2d/kinematic_char/player.scn


BIN
demos/2d/kinematic_col/colworld.scn


+ 9 - 14
demos/2d/kinematic_col/player.gd

@@ -2,35 +2,30 @@
 extends KinematicBody2D
 
 # This is a simple collision demo showing how
-# the kinematic cotroller works.
+# the kinematic controller works.
 # move() will allow to move the node, and will
 # always move it to a non-colliding spot, 
 # as long as it starts from a non-colliding spot too.
 
+# Member variables
+const MOTION_SPEED = 160 # Pixels/second
 
-#pixels / second
-const MOTION_SPEED=160
 
 func _fixed_process(delta):
-
 	var motion = Vector2()
 	
 	if (Input.is_action_pressed("move_up")):
-		motion+=Vector2(0,-1)
+		motion += Vector2(0, -1)
 	if (Input.is_action_pressed("move_bottom")):
-		motion+=Vector2(0,1)
+		motion += Vector2(0, 1)
 	if (Input.is_action_pressed("move_left")):
-		motion+=Vector2(-1,0)
+		motion += Vector2(-1, 0)
 	if (Input.is_action_pressed("move_right")):
-		motion+=Vector2(1,0)
+		motion += Vector2(1, 0)
 	
-	motion = motion.normalized() * MOTION_SPEED * delta
+	motion = motion.normalized()*MOTION_SPEED*delta
 	move(motion)
-	
+
 
 func _ready():
-	# Initalization here
 	set_fixed_process(true)
-	pass
-
-

BIN
demos/2d/kinematic_col/player.scn


BIN
demos/2d/light_mask/lightmask.scn


BIN
demos/2d/lights_shadows/light_shadows.scn


+ 14 - 24
demos/2d/lookat/lookat.gd

@@ -1,43 +1,33 @@
 
 extends Sprite
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-const MODE_DIRECT=0
-const MODE_CONSTANT=1
-const MODE_SMOOTH=2
+# Member variables
+const MODE_DIRECT = 0
+const MODE_CONSTANT = 1
+const MODE_SMOOTH = 2
 
 const ROTATION_SPEED = 1
 const SMOOTH_SPEED = 2.0
 
-export(int,"Direct","Constant","Smooth") var mode=MODE_DIRECT
+export(int, "Direct", "Constant", "Smooth") var mode = MODE_DIRECT
+
 
 func _process(delta):
 	var mpos = get_viewport().get_mouse_pos()
 	
-	if (mode==MODE_DIRECT):
-	
+	if (mode == MODE_DIRECT):
 		look_at(mpos)
-		
-	elif (mode==MODE_CONSTANT):
-	
+	elif (mode == MODE_CONSTANT):
 		var ang = get_angle_to(mpos)
 		var s = sign(ang)
-		ang=abs(ang)
-		
-		rotate( min(ang,ROTATION_SPEED*delta)*s )
+		ang = abs(ang)
 		
-	elif (mode==MODE_SMOOTH):
-	
-		var ang = get_angle_to(mpos)		
+		rotate(min(ang, ROTATION_SPEED*delta)*s)
+	elif (mode == MODE_SMOOTH):
+		var ang = get_angle_to(mpos)
 		
-		rotate( ang*delta*SMOOTH_SPEED )
+		rotate(ang*delta*SMOOTH_SPEED)
+
 
 func _ready():
-	# Initialization here
 	set_process(true)
-	pass
-
-

BIN
demos/2d/lookat/lookat.scn


+ 15 - 20
demos/2d/motion/motion.gd

@@ -1,38 +1,33 @@
 
 extends Sprite
 
-
-export var use_idle=true
-
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
 const BEGIN = -113
 const END = 907
-const TIME = 5.0 # seconds
-const SPEED = (END-BEGIN)/TIME
+const TIME = 5.0 # Seconds
+const SPEED = (END - BEGIN)/TIME
+
+export var use_idle = true
+
 
 func _process(delta):
 	var ofs = get_pos()
-	ofs.x+=delta*SPEED
-	if (ofs.x>END):
-		ofs.x=BEGIN
+	ofs.x += delta*SPEED
+	if (ofs.x > END):
+		ofs.x = BEGIN
 	set_pos(ofs)
-	
+
+
 func _fixed_process(delta):
 	var ofs = get_pos()
-	ofs.x+=delta*SPEED
-	if (ofs.x>END):
-		ofs.x=BEGIN
+	ofs.x += delta*SPEED
+	if (ofs.x > END):
+		ofs.x = BEGIN
 	set_pos(ofs)
-	
+
 
 func _ready():
-	# Initialization here
 	if (use_idle):
 		set_process(true)
 	else:
 		set_fixed_process(true)
-	pass
-
-

BIN
demos/2d/motion/motion.scn


+ 27 - 37
demos/2d/navpoly/navigation.gd

@@ -1,63 +1,53 @@
 
 extends Navigation2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
-var begin=Vector2()
-var end=Vector2()
-var path=[]
+# Member variables
+const SPEED = 200.0
 
-const SPEED=200.0
-
-func _process(delta):
+var begin = Vector2()
+var end = Vector2()
+var path = []
 
 
-	if (path.size()>1):
-	
+func _process(delta):
+	if (path.size() > 1):
 		var to_walk = delta*SPEED
-		while(to_walk>0 and path.size()>=2):
-			var pfrom = path[path.size()-1]
-			var pto = path[path.size()-2]
+		while(to_walk > 0 and path.size() >= 2):
+			var pfrom = path[path.size() - 1]
+			var pto = path[path.size() - 2]
 			var d = pfrom.distance_to(pto)
-			if (d<=to_walk):
-				path.remove(path.size()-1)
-				to_walk-=d
+			if (d <= to_walk):
+				path.remove(path.size() - 1)
+				to_walk -= d
 			else:
-				path[path.size()-1] = pfrom.linear_interpolate(pto,to_walk/d)
-				to_walk=0
-				
-		var atpos = path[path.size()-1]	
+				path[path.size() - 1] = pfrom.linear_interpolate(pto, to_walk/d)
+				to_walk = 0
+		
+		var atpos = path[path.size() - 1]
 		get_node("agent").set_pos(atpos)
 		
-		if (path.size()<2):
-			path=[]
+		if (path.size() < 2):
+			path = []
 			set_process(false)
-				
 	else:
 		set_process(false)
 
 
-
 func _update_path():
-
-	var p = get_simple_path(begin,end,true)
-	path=Array(p) # Vector2array to complex to use, convert to regular array
+	var p = get_simple_path(begin, end, true)
+	path = Array(p) # Vector2array too complex to use, convert to regular array
 	path.invert()
 	
 	set_process(true)
 
 
-func _input(ev):
-	if (ev.type==InputEvent.MOUSE_BUTTON and ev.pressed and ev.button_index==1):
-		begin=get_node("agent").get_pos()
-		#mouse to local navigatio cooards
-		end=ev.pos - get_pos()
+func _input(event):
+	if (event.type == InputEvent.MOUSE_BUTTON and event.pressed and event.button_index == 1):
+		begin = get_node("agent").get_pos()
+		# Mouse to local navigation coordinates
+		end = event.pos - get_pos()
 		_update_path()
 
+
 func _ready():
-	# Initialization here
 	set_process_input(true)
-	pass
-
-

BIN
demos/2d/navpoly/navigation.scn


BIN
demos/2d/navpoly/navigation2.scn


BIN
demos/2d/normalmaps/normalmap.scn


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 137 - 122
demos/2d/particles/particles.xml


+ 4 - 9
demos/2d/platformer/bullet.gd

@@ -1,21 +1,16 @@
 
 extends RigidBody2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
+var disabled = false
 
-var disabled=false
 
 func disable():
 	if (disabled):
 		return
 	get_node("anim").play("shutdown")
-	disabled=true
+	disabled = true
+
 
 func _ready():
-	# Initalization here
 	get_node("Timer").start()
-	pass
-
-

+ 135 - 138
demos/2d/platformer/bullet.xml

@@ -1,11 +1,16 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="5" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
-	<ext_resource path="res://bullet.*" type="Texture"></ext_resource>
-	<ext_resource path="res://bullet.*" type="Script"></ext_resource>
+<resource_file type="PackedScene" subresource_count="6" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+	<ext_resource path="res://bullet.png" type="Texture" index="1"></ext_resource>
+	<ext_resource path="res://bullet.gd" type="Script" index="0"></ext_resource>
 	<resource type="CircleShape2D" path="local://1">
 		<real name="custom_solver_bias"> 0 </real>
 		<real name="radius"> 10 </real>
 
+	</resource>
+	<resource type="ColorRamp" path="local://3">
+		<real_array name="offsets" len="2"> 			0, 1 </real_array>
+		<color_array name="colors" len="2"> 			1, 1, 1, 1, 1, 0, 0, 0 </color_array>
+
 	</resource>
 	<resource type="Animation" path="local://2">
 		<string name="resource/name"> "shutdown" </string>
@@ -18,14 +23,14 @@
 		<dictionary name="tracks/0/keys" shared="false">
 			<string> "cont" </string>
 			<bool> False </bool>
+			<string> "times" </string>
+			<real_array  len="1"> 				0 </real_array>
 			<string> "transitions" </string>
 			<real_array  len="1"> 				1 </real_array>
 			<string> "values" </string>
 			<array  len="1" shared="false">
 				<bool> False </bool>
 			</array>
-			<string> "times" </string>
-			<real_array  len="1"> 				0 </real_array>
 		</dictionary>
 		<string name="tracks/1/type"> "value" </string>
 		<node_path name="tracks/1/path"> "sprite:visibility/self_opacity" </node_path>
@@ -33,6 +38,8 @@
 		<dictionary name="tracks/1/keys" shared="false">
 			<string> "cont" </string>
 			<bool> True </bool>
+			<string> "times" </string>
+			<real_array  len="2"> 				0, 1.00394 </real_array>
 			<string> "transitions" </string>
 			<real_array  len="2"> 				1, 1 </real_array>
 			<string> "values" </string>
@@ -40,13 +47,13 @@
 				<real> 1 </real>
 				<real> 0 </real>
 			</array>
-			<string> "times" </string>
-			<real_array  len="2"> 				0, 1.00394 </real_array>
 		</dictionary>
 		<string name="tracks/2/type"> "method" </string>
 		<node_path name="tracks/2/path"> "." </node_path>
 		<int name="tracks/2/interp"> 1 </int>
 		<dictionary name="tracks/2/keys" shared="false">
+			<string> "times" </string>
+			<real_array  len="1"> 				1.31 </real_array>
 			<string> "transitions" </string>
 			<real_array  len="1"> 				1 </real_array>
 			<string> "values" </string>
@@ -59,57 +66,51 @@
 					<string> "queue_free" </string>
 				</dictionary>
 			</array>
-			<string> "times" </string>
-			<real_array  len="1"> 				1.31 </real_array>
 		</dictionary>
 
 	</resource>
 	<main_resource>
 		<dictionary name="_bundled" shared="false">
+			<string> "conn_count" </string>
+			<int> 1 </int>
+			<string> "conns" </string>
+			<int_array  len="6"> 				4, 0, 73, 72, 2, 0 </int_array>
+			<string> "editable_instances" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "names" </string>
-			<string_array  len="111">
+			<string_array  len="74">
 				<string> "bullet" </string>
-				<string> "RigidBody2D" </string>
-				<string> "visibility/visible" </string>
-				<string> "visibility/opacity" </string>
-				<string> "visibility/self_opacity" </string>
-				<string> "visibility/on_top" </string>
-				<string> "transform/pos" </string>
-				<string> "transform/rot" </string>
-				<string> "transform/scale" </string>
-				<string> "shape_count" </string>
+				<string> "input/pickable" </string>
 				<string> "shapes/0/shape" </string>
 				<string> "shapes/0/transform" </string>
 				<string> "shapes/0/trigger" </string>
+				<string> "collision/layers" </string>
+				<string> "collision/mask" </string>
 				<string> "mode" </string>
 				<string> "mass" </string>
 				<string> "friction" </string>
 				<string> "bounce" </string>
+				<string> "gravity_scale" </string>
 				<string> "custom_integrator" </string>
 				<string> "continuous_cd" </string>
 				<string> "contacts_reported" </string>
 				<string> "contact_monitor" </string>
-				<string> "active" </string>
+				<string> "sleeping" </string>
 				<string> "can_sleep" </string>
 				<string> "velocity/linear" </string>
 				<string> "velocity/angular" </string>
+				<string> "damp_override/linear" </string>
+				<string> "damp_override/angular" </string>
 				<string> "script/script" </string>
 				<string> "__meta__" </string>
+				<string> "RigidBody2D" </string>
 				<string> "particles" </string>
-				<string> "Particles2D" </string>
+				<string> "visibility/opacity" </string>
 				<string> "visibility/blend_mode" </string>
 				<string> "config/amount" </string>
 				<string> "config/lifetime" </string>
-				<string> "config/time_scale" </string>
-				<string> "config/preprocess" </string>
-				<string> "config/emit_timeout" </string>
-				<string> "config/emitting" </string>
-				<string> "config/offset" </string>
-				<string> "config/half_extents" </string>
 				<string> "config/local_space" </string>
-				<string> "config/explosiveness" </string>
-				<string> "config/flip_h" </string>
-				<string> "config/flip_v" </string>
 				<string> "config/texture" </string>
 				<string> "params/direction" </string>
 				<string> "params/spread" </string>
@@ -121,54 +122,27 @@
 				<string> "params/radial_accel" </string>
 				<string> "params/tangential_accel" </string>
 				<string> "params/damping" </string>
+				<string> "params/initial_angle" </string>
 				<string> "params/initial_size" </string>
 				<string> "params/final_size" </string>
 				<string> "params/hue_variation" </string>
-				<string> "randomness/direction" </string>
-				<string> "randomness/spread" </string>
-				<string> "randomness/linear_velocity" </string>
-				<string> "randomness/spin_velocity" </string>
-				<string> "randomness/orbit_velocity" </string>
-				<string> "randomness/gravity_direction" </string>
-				<string> "randomness/gravity_strength" </string>
-				<string> "randomness/radial_accel" </string>
-				<string> "randomness/tangential_accel" </string>
-				<string> "randomness/damping" </string>
-				<string> "randomness/initial_size" </string>
-				<string> "randomness/final_size" </string>
-				<string> "randomness/hue_variation" </string>
-				<string> "color_phases/count" </string>
-				<string> "phase_0/pos" </string>
-				<string> "phase_0/color" </string>
-				<string> "phase_1/pos" </string>
-				<string> "phase_1/color" </string>
-				<string> "phase_2/pos" </string>
-				<string> "phase_2/color" </string>
-				<string> "phase_3/pos" </string>
-				<string> "phase_3/color" </string>
-				<string> "emission_points" </string>
+				<string> "params/anim_speed_scale" </string>
+				<string> "params/anim_initial_pos" </string>
+				<string> "color/color_ramp" </string>
+				<string> "Particles2D" </string>
 				<string> "sprite" </string>
-				<string> "Sprite" </string>
 				<string> "texture" </string>
-				<string> "centered" </string>
-				<string> "offset" </string>
-				<string> "flip_h" </string>
-				<string> "flip_v" </string>
-				<string> "vframes" </string>
-				<string> "hframes" </string>
-				<string> "frame" </string>
-				<string> "modulate" </string>
-				<string> "region" </string>
-				<string> "region_rect" </string>
+				<string> "Sprite" </string>
 				<string> "CollisionShape2D" </string>
 				<string> "shape" </string>
 				<string> "trigger" </string>
+				<string> "_update_shape_index" </string>
 				<string> "Timer" </string>
+				<string> "process_mode" </string>
 				<string> "wait_time" </string>
 				<string> "one_shot" </string>
 				<string> "autostart" </string>
 				<string> "anim" </string>
-				<string> "AnimationPlayer" </string>
 				<string> "playback/process_mode" </string>
 				<string> "playback/default_blend_time" </string>
 				<string> "root/root" </string>
@@ -177,128 +151,158 @@
 				<string> "playback/speed" </string>
 				<string> "blend_times" </string>
 				<string> "autoplay" </string>
+				<string> "AnimationPlayer" </string>
 				<string> "disable" </string>
 				<string> "timeout" </string>
 			</string_array>
-			<string> "version" </string>
-			<int> 1 </int>
-			<string> "conn_count" </string>
-			<int> 1 </int>
 			<string> "node_count" </string>
 			<int> 6 </int>
+			<string> "node_paths" </string>
+			<array  len="0" shared="false">
+			</array>
+			<string> "nodes" </string>
+			<int_array  len="166"> 				-1, -1, 24, 0, -1, 23, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 5, 10, 6, 11, 5, 12, 0, 13, 7, 14, 4, 15, 0, 16, 0, 17, 8, 18, 9, 19, 6, 20, 10, 21, 10, 22, 11, 23, 12, 0, 0, 0, 49, 25, -1, 23, 26, 13, 27, 3, 28, 14, 29, 15, 30, 0, 31, 16, 32, 6, 33, 17, 34, 6, 35, 6, 36, 6, 37, 6, 38, 6, 39, 6, 40, 6, 41, 6, 42, 6, 43, 5, 44, 6, 45, 6, 46, 5, 47, 6, 48, 18, 0, 0, 0, 52, 50, -1, 1, 51, 16, 0, 0, 0, 53, 53, -1, 3, 54, 1, 55, 0, 56, 19, 0, 0, 0, 57, 57, -1, 4, 58, 3, 59, 5, 60, 8, 61, 0, 0, 0, 0, 71, 62, -1, 8, 63, 3, 64, 6, 65, 20, 66, 21, 67, 8, 68, 5, 69, 22, 70, 23, 0 </int_array>
 			<string> "variants" </string>
-			<array  len="27" shared="false">
-				<bool> True </bool>
-				<real> 1 </real>
-				<vector2> 0, 0 </vector2>
-				<real> 0 </real>
-				<vector2> 1, 1 </vector2>
-				<int> 1 </int>
+			<array  len="24" shared="false">
+				<bool> False </bool>
 				<resource  resource_type="Shape2D" path="local://1">  </resource>
 				<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
-				<bool> False </bool>
+				<int> 1 </int>
 				<int> 0 </int>
+				<real> 1 </real>
+				<real> 0 </real>
 				<int> 2 </int>
-				<resource  resource_type="Script" path="res://bullet.*">  </resource>
+				<bool> True </bool>
+				<vector2> 0, 0 </vector2>
+				<real> -1 </real>
+				<resource  external="0">  </resource>
 				<dictionary  shared="false">
+					<string> "__editor_plugin_screen__" </string>
+					<string> "2D" </string>
 					<string> "__editor_plugin_states__" </string>
 					<dictionary  shared="false">
-						<string> "Script" </string>
-						<dictionary  shared="false">
-							<string> "current" </string>
-							<int> 2 </int>
-							<string> "sources" </string>
-							<array  len="3" shared="false">
-								<string> "res://enemy.gd" </string>
-								<string> "res://player.gd" </string>
-								<string> "res://bullet.gd" </string>
-							</array>
-						</dictionary>
 						<string> "2D" </string>
 						<dictionary  shared="false">
-							<string> "pixel_snap" </string>
+							<string> "ofs" </string>
+							<vector2> -74.7573, -35.9676 </vector2>
+							<string> "snap_grid" </string>
 							<bool> False </bool>
+							<string> "snap_offset" </string>
+							<vector2> 0, 0 </vector2>
+							<string> "snap_pixel" </string>
+							<bool> False </bool>
+							<string> "snap_relative" </string>
+							<bool> False </bool>
+							<string> "snap_rotation" </string>
+							<bool> False </bool>
+							<string> "snap_rotation_offset" </string>
+							<real> 0 </real>
+							<string> "snap_rotation_step" </string>
+							<real> 0.261799 </real>
+							<string> "snap_show_grid" </string>
+							<bool> False </bool>
+							<string> "snap_step" </string>
+							<vector2> 10, 10 </vector2>
 							<string> "zoom" </string>
 							<real> 3.424785 </real>
-							<string> "ofs" </string>
-							<vector2> -74.7573, -35.9676 </vector2>
 						</dictionary>
 						<string> "3D" </string>
 						<dictionary  shared="false">
-							<string> "zfar" </string>
-							<real> 500 </real>
+							<string> "ambient_light_color" </string>
+							<color> 0.15, 0.15, 0.15, 1 </color>
+							<string> "default_light" </string>
+							<bool> True </bool>
+							<string> "default_srgb" </string>
+							<bool> False </bool>
+							<string> "deflight_rot_x" </string>
+							<real> 0.942478 </real>
+							<string> "deflight_rot_y" </string>
+							<real> 0.628319 </real>
 							<string> "fov" </string>
 							<real> 45 </real>
+							<string> "show_grid" </string>
+							<bool> True </bool>
+							<string> "show_origin" </string>
+							<bool> True </bool>
+							<string> "viewport_mode" </string>
+							<int> 1 </int>
 							<string> "viewports" </string>
 							<array  len="4" shared="false">
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> True </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 							</array>
-							<string> "viewport_mode" </string>
-							<int> 1 </int>
-							<string> "default_light" </string>
-							<bool> True </bool>
-							<string> "show_grid" </string>
-							<bool> True </bool>
-							<string> "show_origin" </string>
-							<bool> True </bool>
+							<string> "zfar" </string>
+							<real> 500 </real>
 							<string> "znear" </string>
 							<real> 0.1 </real>
 						</dictionary>
+						<string> "Anim" </string>
+						<dictionary  shared="false">
+							<string> "visible" </string>
+							<bool> False </bool>
+						</dictionary>
 					</dictionary>
 					<string> "__editor_run_settings__" </string>
 					<dictionary  shared="false">
@@ -307,29 +311,22 @@
 						<string> "run_mode" </string>
 						<int> 0 </int>
 					</dictionary>
-					<string> "__editor_plugin_screen__" </string>
-					<string> "2D" </string>
 				</dictionary>
 				<real> 0.559322 </real>
 				<int> 24 </int>
 				<real> 0.1 </real>
-				<resource  resource_type="Texture" path="res://bullet.*">  </resource>
+				<resource  external="1">  </resource>
 				<real> 10 </real>
-				<color> 1, 1, 1, 1 </color>
-				<color> 1, 0, 0, 0 </color>
-				<color> 0, 0, 0, 1 </color>
-				<vector2_array  len="0"> 					 </vector2_array>
-				<rect2> 0, 0, 0, 0 </rect2>
+				<resource  resource_type="ColorRamp" path="local://3">  </resource>
+				<int> -1 </int>
 				<node_path> ".." </node_path>
 				<resource  resource_type="Animation" path="local://2">  </resource>
 				<array  len="0" shared="false">
 				</array>
 				<string> "" </string>
 			</array>
-			<string> "nodes" </string>
-			<int_array  len="282"> 				-1, -1, 1, 0, -1, 25, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 8, 13, 9, 14, 1, 15, 1, 16, 3, 17, 8, 18, 10, 19, 9, 20, 8, 21, 0, 22, 0, 23, 2, 24, 3, 25, 11, 26, 12, 0, 0, 0, 28, 27, -1, 57, 2, 0, 3, 13, 4, 1, 5, 0, 29, 5, 6, 2, 7, 3, 8, 4, 30, 14, 31, 15, 32, 1, 33, 3, 34, 3, 35, 0, 36, 2, 37, 2, 38, 8, 39, 1, 40, 8, 41, 8, 42, 16, 43, 3, 44, 17, 45, 3, 46, 3, 47, 3, 48, 3, 49, 3, 50, 3, 51, 3, 52, 3, 53, 1, 54, 3, 55, 3, 56, 3, 57, 3, 58, 3, 59, 3, 60, 3, 61, 3, 62, 3, 63, 3, 64, 3, 65, 3, 66, 3, 67, 3, 68, 3, 69, 10, 70, 3, 71, 18, 72, 1, 73, 19, 74, 1, 75, 20, 76, 1, 77, 20, 78, 21, 0, 0, 0, 80, 79, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 81, 16, 82, 0, 83, 2, 84, 8, 85, 8, 86, 5, 87, 5, 88, 9, 89, 18, 90, 8, 91, 22, 0, 0, 0, 92, 92, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 93, 6, 94, 8, 0, 0, 0, 95, 95, -1, 3, 96, 1, 97, 0, 98, 8, 0, 0, 0, 100, 99, -1, 8, 101, 5, 102, 3, 103, 23, 104, 24, 105, 0, 106, 1, 107, 25, 108, 26, 0 </int_array>
-			<string> "conns" </string>
-			<int_array  len="6"> 				4, 0, 110, 109, 2, 0 </int_array>
+			<string> "version" </string>
+			<int> 2 </int>
 		</dictionary>
 
 	</main_resource>

+ 5 - 14
demos/2d/platformer/coin.gd

@@ -1,28 +1,19 @@
 
 extends Area2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-var taken=false
+# 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 _ready():
-	# Initalization here
-	pass
-
+		taken = true
 
 
-func _on_coin_area_enter( area ):
+func _on_coin_area_enter(area):
 	pass # replace with function body
 
 
-func _on_coin_area_enter_shape( area_id, area, area_shape, area_shape ):
+func _on_coin_area_enter_shape(area_id, area, area_shape, area_shape):
 	pass # replace with function body

+ 143 - 150
demos/2d/platformer/coin.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="9" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
-	<ext_resource path="res://bullet.*" type="Texture"></ext_resource>
-	<ext_resource path="res://coin.*" type="Texture"></ext_resource>
-	<ext_resource path="res://sound_coin.*" type="Sample"></ext_resource>
-	<ext_resource path="res://coin.*" type="Script"></ext_resource>
+<resource_file type="PackedScene" subresource_count="10" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+	<ext_resource path="res://bullet.png" type="Texture" index="3"></ext_resource>
+	<ext_resource path="res://coin.png" type="Texture" index="1"></ext_resource>
+	<ext_resource path="res://sound_coin.wav" type="Sample" index="2"></ext_resource>
+	<ext_resource path="res://coin.gd" type="Script" index="0"></ext_resource>
 	<resource type="CircleShape2D" path="local://1">
 		<real name="custom_solver_bias"> 0 </real>
 		<real name="radius"> 10 </real>
@@ -20,14 +20,14 @@
 		<dictionary name="tracks/0/keys" shared="false">
 			<string> "cont" </string>
 			<bool> True </bool>
+			<string> "times" </string>
+			<real_array  len="1"> 				0 </real_array>
 			<string> "transitions" </string>
 			<real_array  len="1"> 				1 </real_array>
 			<string> "values" </string>
 			<array  len="1" shared="false">
 				<int> 0 </int>
 			</array>
-			<string> "times" </string>
-			<real_array  len="1"> 				0 </real_array>
 		</dictionary>
 		<string name="tracks/1/type"> "value" </string>
 		<node_path name="tracks/1/path"> "sound:play/play" </node_path>
@@ -35,14 +35,14 @@
 		<dictionary name="tracks/1/keys" shared="false">
 			<string> "cont" </string>
 			<bool> False </bool>
+			<string> "times" </string>
+			<real_array  len="1"> 				0 </real_array>
 			<string> "transitions" </string>
 			<real_array  len="1"> 				1 </real_array>
 			<string> "values" </string>
 			<array  len="1" shared="false">
 				<string> "coin" </string>
 			</array>
-			<string> "times" </string>
-			<real_array  len="1"> 				0 </real_array>
 		</dictionary>
 		<string name="tracks/2/type"> "value" </string>
 		<node_path name="tracks/2/path"> "particles:visibility/self_opacity" </node_path>
@@ -50,6 +50,8 @@
 		<dictionary name="tracks/2/keys" shared="false">
 			<string> "cont" </string>
 			<bool> True </bool>
+			<string> "times" </string>
+			<real_array  len="2"> 				0, 1.66 </real_array>
 			<string> "transitions" </string>
 			<real_array  len="2"> 				1, 1 </real_array>
 			<string> "values" </string>
@@ -57,8 +59,6 @@
 				<real> 1 </real>
 				<real> 0 </real>
 			</array>
-			<string> "times" </string>
-			<real_array  len="2"> 				0, 1.66 </real_array>
 		</dictionary>
 		<string name="tracks/3/type"> "value" </string>
 		<node_path name="tracks/3/path"> "sprite:visibility/self_opacity" </node_path>
@@ -66,6 +66,8 @@
 		<dictionary name="tracks/3/keys" shared="false">
 			<string> "cont" </string>
 			<bool> True </bool>
+			<string> "times" </string>
+			<real_array  len="2"> 				0, 0.4 </real_array>
 			<string> "transitions" </string>
 			<real_array  len="2"> 				1, 1 </real_array>
 			<string> "values" </string>
@@ -73,8 +75,6 @@
 				<real> 1 </real>
 				<real> 0 </real>
 			</array>
-			<string> "times" </string>
-			<real_array  len="2"> 				0, 0.4 </real_array>
 		</dictionary>
 		<string name="tracks/4/type"> "value" </string>
 		<node_path name="tracks/4/path"> "particles:config/emitting" </node_path>
@@ -82,19 +82,21 @@
 		<dictionary name="tracks/4/keys" shared="false">
 			<string> "cont" </string>
 			<bool> False </bool>
+			<string> "times" </string>
+			<real_array  len="1"> 				0 </real_array>
 			<string> "transitions" </string>
 			<real_array  len="1"> 				1 </real_array>
 			<string> "values" </string>
 			<array  len="1" shared="false">
 				<bool> True </bool>
 			</array>
-			<string> "times" </string>
-			<real_array  len="1"> 				0 </real_array>
 		</dictionary>
 		<string name="tracks/5/type"> "method" </string>
 		<node_path name="tracks/5/path"> "." </node_path>
 		<int name="tracks/5/interp"> 1 </int>
 		<dictionary name="tracks/5/keys" shared="false">
+			<string> "times" </string>
+			<real_array  len="1"> 				2.7 </real_array>
 			<string> "transitions" </string>
 			<real_array  len="1"> 				1 </real_array>
 			<string> "values" </string>
@@ -107,8 +109,6 @@
 					<string> "queue_free" </string>
 				</dictionary>
 			</array>
-			<string> "times" </string>
-			<real_array  len="1"> 				2.7 </real_array>
 		</dictionary>
 
 	</resource>
@@ -123,6 +123,8 @@
 		<dictionary name="tracks/0/keys" shared="false">
 			<string> "cont" </string>
 			<bool> False </bool>
+			<string> "times" </string>
+			<real_array  len="7"> 				0, 0.25, 0.5, 0.75, 1, 1.25, 1.5 </real_array>
 			<string> "transitions" </string>
 			<real_array  len="7"> 				1, 1, 1, 1, 1, 1, 1 </real_array>
 			<string> "values" </string>
@@ -135,8 +137,6 @@
 				<int> 1 </int>
 				<int> 0 </int>
 			</array>
-			<string> "times" </string>
-			<real_array  len="7"> 				0, 0.25, 0.5, 0.75, 1, 1.25, 1.5 </real_array>
 		</dictionary>
 
 	</resource>
@@ -147,49 +147,43 @@
 			<string> "pitch" </string>
 			<real> 1 </real>
 			<string> "sample" </string>
-			<resource  resource_type="Sample" path="res://sound_coin.*">  </resource>
+			<resource  external="2">  </resource>
 		</dictionary>
 
+	</resource>
+	<resource type="ColorRamp" path="local://5">
+		<real_array name="offsets" len="2"> 			0, 1 </real_array>
+		<color_array name="colors" len="2"> 			1, 1, 1, 1, 0, 0, 0, 1 </color_array>
+
 	</resource>
 	<main_resource>
 		<dictionary name="_bundled" shared="false">
+			<string> "conn_count" </string>
+			<int> 1 </int>
+			<string> "conns" </string>
+			<int_array  len="6"> 				0, 0, 76, 75, 2, 0 </int_array>
+			<string> "editable_instances" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "names" </string>
-			<string_array  len="115">
+			<string_array  len="77">
 				<string> "coin" </string>
-				<string> "Area2D" </string>
-				<string> "visibility/visible" </string>
-				<string> "visibility/opacity" </string>
-				<string> "visibility/self_opacity" </string>
-				<string> "visibility/on_top" </string>
-				<string> "transform/pos" </string>
-				<string> "transform/rot" </string>
-				<string> "transform/scale" </string>
-				<string> "shape_count" </string>
+				<string> "input/pickable" </string>
 				<string> "shapes/0/shape" </string>
 				<string> "shapes/0/transform" </string>
 				<string> "shapes/0/trigger" </string>
-				<string> "gravity_point" </string>
 				<string> "gravity_vec" </string>
 				<string> "gravity" </string>
-				<string> "density" </string>
-				<string> "monitoring" </string>
+				<string> "linear_damp" </string>
+				<string> "angular_damp" </string>
 				<string> "script/script" </string>
 				<string> "__meta__" </string>
+				<string> "Area2D" </string>
 				<string> "sprite" </string>
-				<string> "Sprite" </string>
 				<string> "texture" </string>
-				<string> "centered" </string>
-				<string> "offset" </string>
-				<string> "flip_h" </string>
-				<string> "flip_v" </string>
-				<string> "vframes" </string>
 				<string> "hframes" </string>
-				<string> "frame" </string>
-				<string> "modulate" </string>
-				<string> "region" </string>
-				<string> "region_rect" </string>
+				<string> "Sprite" </string>
 				<string> "anim" </string>
-				<string> "AnimationPlayer" </string>
 				<string> "playback/process_mode" </string>
 				<string> "playback/default_blend_time" </string>
 				<string> "root/root" </string>
@@ -199,12 +193,13 @@
 				<string> "playback/speed" </string>
 				<string> "blend_times" </string>
 				<string> "autoplay" </string>
+				<string> "AnimationPlayer" </string>
 				<string> "collision" </string>
-				<string> "CollisionShape2D" </string>
 				<string> "shape" </string>
 				<string> "trigger" </string>
+				<string> "_update_shape_index" </string>
+				<string> "CollisionShape2D" </string>
 				<string> "sound" </string>
-				<string> "SamplePlayer2D" </string>
 				<string> "params/volume_db" </string>
 				<string> "params/pitch_scale" </string>
 				<string> "params/attenuation/min_distance" </string>
@@ -213,19 +208,13 @@
 				<string> "config/polyphony" </string>
 				<string> "config/samples" </string>
 				<string> "config/pitch_random" </string>
+				<string> "SamplePlayer2D" </string>
 				<string> "particles" </string>
-				<string> "Particles2D" </string>
 				<string> "visibility/blend_mode" </string>
 				<string> "config/amount" </string>
 				<string> "config/lifetime" </string>
-				<string> "config/time_scale" </string>
-				<string> "config/preprocess" </string>
-				<string> "config/emit_timeout" </string>
 				<string> "config/emitting" </string>
-				<string> "config/offset" </string>
 				<string> "config/half_extents" </string>
-				<string> "config/local_space" </string>
-				<string> "config/explosiveness" </string>
 				<string> "config/texture" </string>
 				<string> "params/direction" </string>
 				<string> "params/spread" </string>
@@ -237,160 +226,170 @@
 				<string> "params/radial_accel" </string>
 				<string> "params/tangential_accel" </string>
 				<string> "params/damping" </string>
+				<string> "params/initial_angle" </string>
 				<string> "params/initial_size" </string>
 				<string> "params/final_size" </string>
 				<string> "params/hue_variation" </string>
-				<string> "randomness/direction" </string>
-				<string> "randomness/spread" </string>
-				<string> "randomness/linear_velocity" </string>
-				<string> "randomness/spin_velocity" </string>
-				<string> "randomness/orbit_velocity" </string>
-				<string> "randomness/gravity_direction" </string>
-				<string> "randomness/gravity_strength" </string>
-				<string> "randomness/radial_accel" </string>
-				<string> "randomness/tangential_accel" </string>
-				<string> "randomness/damping" </string>
-				<string> "randomness/initial_size" </string>
-				<string> "randomness/final_size" </string>
-				<string> "randomness/hue_variation" </string>
-				<string> "color_phases/count" </string>
-				<string> "phase_0/pos" </string>
-				<string> "phase_0/color" </string>
-				<string> "phase_1/pos" </string>
-				<string> "phase_1/color" </string>
-				<string> "phase_2/pos" </string>
-				<string> "phase_2/color" </string>
-				<string> "phase_3/pos" </string>
-				<string> "phase_3/color" </string>
-				<string> "emission_points" </string>
+				<string> "params/anim_speed_scale" </string>
+				<string> "params/anim_initial_pos" </string>
+				<string> "color/color_ramp" </string>
+				<string> "Particles2D" </string>
 				<string> "enabler" </string>
-				<string> "VisibilityEnabler2D" </string>
 				<string> "rect" </string>
 				<string> "enabler/pause_animations" </string>
 				<string> "enabler/freeze_bodies" </string>
+				<string> "enabler/pause_particles" </string>
+				<string> "enabler/process_parent" </string>
+				<string> "enabler/fixed_process_parent" </string>
+				<string> "VisibilityEnabler2D" </string>
 				<string> "_on_body_enter" </string>
 				<string> "body_enter" </string>
 			</string_array>
-			<string> "version" </string>
-			<int> 1 </int>
-			<string> "conn_count" </string>
-			<int> 1 </int>
 			<string> "node_count" </string>
 			<int> 7 </int>
+			<string> "node_paths" </string>
+			<array  len="0" shared="false">
+			</array>
+			<string> "nodes" </string>
+			<int_array  len="171"> 				-1, -1, 11, 0, -1, 10, 1, 0, 2, 1, 3, 2, 4, 3, 5, 4, 6, 5, 7, 6, 8, 7, 9, 8, 10, 9, 0, 0, 0, 15, 12, -1, 2, 13, 10, 14, 11, 0, 0, 0, 26, 16, -1, 9, 17, 12, 18, 13, 19, 14, 20, 15, 21, 16, 22, 0, 23, 17, 24, 18, 25, 19, 0, 0, 0, 31, 27, -1, 3, 28, 1, 29, 3, 30, 20, 0, 0, 0, 41, 32, -1, 8, 33, 13, 34, 7, 35, 7, 36, 21, 37, 7, 38, 12, 39, 22, 40, 13, 0, 0, 0, 66, 42, -1, 23, 43, 12, 44, 23, 45, 24, 46, 3, 47, 25, 48, 26, 49, 13, 50, 27, 51, 13, 52, 13, 53, 13, 54, 13, 55, 13, 56, 13, 57, 13, 58, 13, 59, 13, 60, 28, 61, 28, 62, 13, 63, 7, 64, 13, 65, 29, 0, 0, 0, 74, 67, -1, 6, 68, 30, 69, 0, 70, 0, 71, 0, 72, 3, 73, 3, 0 </int_array>
 			<string> "variants" </string>
-			<array  len="37" shared="false">
+			<array  len="31" shared="false">
 				<bool> True </bool>
-				<real> 1 </real>
-				<vector2> 0, 0 </vector2>
-				<real> 0 </real>
-				<vector2> 1, 1 </vector2>
-				<int> 1 </int>
 				<resource  resource_type="Shape2D" path="local://1">  </resource>
 				<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
 				<bool> False </bool>
 				<vector2> 0, 1 </vector2>
 				<real> 98 </real>
 				<real> 0.1 </real>
-				<resource  resource_type="Script" path="res://coin.*">  </resource>
+				<real> 1 </real>
+				<resource  external="0">  </resource>
 				<dictionary  shared="false">
+					<string> "__editor_plugin_screen__" </string>
+					<string> "2D" </string>
 					<string> "__editor_plugin_states__" </string>
 					<dictionary  shared="false">
-						<string> "Script" </string>
-						<dictionary  shared="false">
-							<string> "current" </string>
-							<int> 2 </int>
-							<string> "sources" </string>
-							<array  len="3" shared="false">
-								<string> "res://enemy.gd" </string>
-								<string> "res://player.gd" </string>
-								<string> "res://coin.gd" </string>
-							</array>
-						</dictionary>
 						<string> "2D" </string>
 						<dictionary  shared="false">
-							<string> "pixel_snap" </string>
+							<string> "ofs" </string>
+							<vector2> -34.3697, -21.6562 </vector2>
+							<string> "snap_grid" </string>
+							<bool> False </bool>
+							<string> "snap_offset" </string>
+							<vector2> 0, 0 </vector2>
+							<string> "snap_pixel" </string>
+							<bool> False </bool>
+							<string> "snap_relative" </string>
+							<bool> False </bool>
+							<string> "snap_rotation" </string>
+							<bool> False </bool>
+							<string> "snap_rotation_offset" </string>
+							<real> 0 </real>
+							<string> "snap_rotation_step" </string>
+							<real> 0.261799 </real>
+							<string> "snap_show_grid" </string>
 							<bool> False </bool>
+							<string> "snap_step" </string>
+							<vector2> 10, 10 </vector2>
 							<string> "zoom" </string>
 							<real> 3.794776 </real>
-							<string> "ofs" </string>
-							<vector2> -34.3697, -21.6562 </vector2>
 						</dictionary>
 						<string> "3D" </string>
 						<dictionary  shared="false">
-							<string> "zfar" </string>
-							<real> 500 </real>
+							<string> "ambient_light_color" </string>
+							<color> 0.15, 0.15, 0.15, 1 </color>
+							<string> "default_light" </string>
+							<bool> True </bool>
+							<string> "default_srgb" </string>
+							<bool> False </bool>
+							<string> "deflight_rot_x" </string>
+							<real> 0.942478 </real>
+							<string> "deflight_rot_y" </string>
+							<real> 0.628319 </real>
 							<string> "fov" </string>
 							<real> 45 </real>
+							<string> "show_grid" </string>
+							<bool> True </bool>
+							<string> "show_origin" </string>
+							<bool> True </bool>
+							<string> "viewport_mode" </string>
+							<int> 1 </int>
 							<string> "viewports" </string>
 							<array  len="4" shared="false">
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> True </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 							</array>
-							<string> "viewport_mode" </string>
-							<int> 1 </int>
-							<string> "default_light" </string>
-							<bool> True </bool>
-							<string> "show_grid" </string>
-							<bool> True </bool>
-							<string> "show_origin" </string>
-							<bool> True </bool>
+							<string> "zfar" </string>
+							<real> 500 </real>
 							<string> "znear" </string>
 							<real> 0.1 </real>
 						</dictionary>
+						<string> "Anim" </string>
+						<dictionary  shared="false">
+							<string> "visible" </string>
+							<bool> False </bool>
+						</dictionary>
 					</dictionary>
 					<string> "__editor_run_settings__" </string>
 					<dictionary  shared="false">
@@ -399,14 +398,11 @@
 						<string> "run_mode" </string>
 						<int> 0 </int>
 					</dictionary>
-					<string> "__editor_plugin_screen__" </string>
-					<string> "2D" </string>
 				</dictionary>
-				<resource  resource_type="Texture" path="res://coin.*">  </resource>
+				<resource  external="1">  </resource>
 				<int> 4 </int>
-				<int> 0 </int>
-				<color> 1, 1, 1, 1 </color>
-				<rect2> 0, 0, 0, 0 </rect2>
+				<int> 1 </int>
+				<real> 0 </real>
 				<node_path> ".." </node_path>
 				<resource  resource_type="Animation" path="local://2">  </resource>
 				<resource  resource_type="Animation" path="local://3">  </resource>
@@ -414,23 +410,20 @@
 				<array  len="0" shared="false">
 				</array>
 				<string> "spin" </string>
+				<int> -1 </int>
 				<real> 2048 </real>
 				<resource  resource_type="SampleLibrary" path="local://4">  </resource>
 				<int> 8 </int>
 				<real> 0.4 </real>
 				<vector2> 5, 5 </vector2>
-				<resource  resource_type="Texture" path="res://bullet.*">  </resource>
+				<resource  external="3">  </resource>
 				<real> 10 </real>
 				<real> 0.2 </real>
-				<int> 2 </int>
-				<color> 0, 0, 0, 1 </color>
-				<vector2_array  len="0"> 					 </vector2_array>
+				<resource  resource_type="ColorRamp" path="local://5">  </resource>
 				<rect2> -10, -10, 20, 20 </rect2>
 			</array>
-			<string> "nodes" </string>
-			<int_array  len="317"> 				-1, -1, 1, 0, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 8, 13, 8, 14, 9, 15, 10, 16, 11, 17, 0, 18, 12, 19, 13, 0, 0, 0, 21, 20, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 22, 14, 23, 0, 24, 2, 25, 8, 26, 8, 27, 5, 28, 15, 29, 16, 30, 17, 31, 8, 32, 18, 0, 0, 0, 34, 33, -1, 9, 35, 5, 36, 3, 37, 19, 38, 20, 39, 21, 40, 0, 41, 22, 42, 23, 43, 24, 0, 0, 0, 45, 44, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 46, 6, 47, 8, 0, 0, 0, 49, 48, -1, 15, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 50, 3, 51, 1, 52, 1, 53, 25, 54, 1, 55, 5, 56, 26, 57, 3, 0, 0, 0, 59, 58, -1, 55, 2, 0, 3, 1, 4, 1, 5, 0, 60, 5, 6, 2, 7, 3, 8, 4, 61, 27, 62, 28, 63, 1, 64, 3, 65, 3, 66, 8, 67, 2, 68, 29, 69, 0, 70, 1, 71, 30, 72, 3, 73, 31, 74, 3, 75, 3, 76, 3, 77, 3, 78, 3, 79, 3, 80, 3, 81, 3, 82, 32, 83, 32, 84, 3, 85, 3, 86, 3, 87, 3, 88, 3, 89, 3, 90, 3, 91, 3, 92, 3, 93, 3, 94, 3, 95, 3, 96, 3, 97, 3, 98, 33, 99, 3, 100, 17, 101, 1, 102, 34, 103, 1, 104, 34, 105, 1, 106, 34, 107, 35, 0, 0, 0, 109, 108, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 110, 36, 111, 0, 112, 0, 0 </int_array>
-			<string> "conns" </string>
-			<int_array  len="6"> 				0, 0, 114, 113, 2, 0 </int_array>
+			<string> "version" </string>
+			<int> 2 </int>
 		</dictionary>
 
 	</main_resource>

+ 38 - 53
demos/2d/platformer/enemy.gd

@@ -1,98 +1,83 @@
 
 extends RigidBody2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
 const STATE_WALKING = 0
 const STATE_DYING = 1
 
-
 var state = STATE_WALKING
 
-
 var direction = -1
-var anim=""
+var anim = ""
 
-var rc_left=null
-var rc_right=null
+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
+	# Stay there
 	clear_shapes()
 	set_mode(MODE_STATIC)
 	get_node("sound").play("explode")
-	
 
-func _integrate_forces(s):
 
+func _integrate_forces(s):
 	var lv = s.get_linear_velocity()
-	var new_anim=anim
+	var new_anim = anim
 
-	if (state==STATE_DYING):
-		new_anim="explode"
-	elif (state==STATE_WALKING):
-		
-		new_anim="walk"
+	if (state == STATE_DYING):
+		new_anim = "explode"
+	elif (state == STATE_WALKING):
+		new_anim = "walk"
 		
-		var wall_side=0.0
+		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
+					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
+			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():
-	# Initalization here
-	rc_left=get_node("raycast_left")
-	rc_right=get_node("raycast_right")
-
-
-
+	rc_left = get_node("raycast_left")
+	rc_right = get_node("raycast_right")

+ 53 - 45
demos/2d/platformer/enemy.xml

@@ -2,9 +2,9 @@
 <resource_file type="PackedScene" subresource_count="12" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
 	<ext_resource path="res://bullet.png" type="Texture" index="2"></ext_resource>
 	<ext_resource path="res://enemy.gd" type="Script" index="0"></ext_resource>
-	<ext_resource path="res://enemy.png" type="Texture" index="1"></ext_resource>
-	<ext_resource path="res://sound_hit.wav" type="Sample" index="4"></ext_resource>
 	<ext_resource path="res://sound_explode.wav" type="Sample" index="3"></ext_resource>
+	<ext_resource path="res://sound_hit.wav" type="Sample" index="4"></ext_resource>
+	<ext_resource path="res://enemy.png" type="Texture" index="1"></ext_resource>
 	<resource type="CircleShape2D" path="local://1">
 		<real name="custom_solver_bias"> 0 </real>
 		<real name="radius"> 14 </real>
@@ -40,33 +40,6 @@
 			</array>
 		</dictionary>
 
-	</resource>
-	<resource type="Animation" path="local://4">
-		<string name="resource/name"> "walk" </string>
-		<real name="length"> 1.25 </real>
-		<bool name="loop"> True </bool>
-		<real name="step"> 0.25 </real>
-		<string name="tracks/0/type"> "value" </string>
-		<node_path name="tracks/0/path"> "sprite:frame" </node_path>
-		<int name="tracks/0/interp"> 1 </int>
-		<dictionary name="tracks/0/keys" shared="false">
-			<string> "cont" </string>
-			<bool> False </bool>
-			<string> "times" </string>
-			<real_array  len="6"> 				0, 0.25, 0.5, 0.75, 1, 1.25 </real_array>
-			<string> "transitions" </string>
-			<real_array  len="6"> 				1, 1, 1, 1, 1, 1 </real_array>
-			<string> "values" </string>
-			<array  len="6" shared="false">
-				<int> 0 </int>
-				<int> 1 </int>
-				<int> 2 </int>
-				<int> 3 </int>
-				<int> 4 </int>
-				<int> 0 </int>
-			</array>
-		</dictionary>
-
 	</resource>
 	<resource type="Animation" path="local://3">
 		<string name="resource/name"> "explode" </string>
@@ -146,6 +119,33 @@
 			</array>
 		</dictionary>
 
+	</resource>
+	<resource type="Animation" path="local://4">
+		<string name="resource/name"> "walk" </string>
+		<real name="length"> 1.25 </real>
+		<bool name="loop"> True </bool>
+		<real name="step"> 0.25 </real>
+		<string name="tracks/0/type"> "value" </string>
+		<node_path name="tracks/0/path"> "sprite:frame" </node_path>
+		<int name="tracks/0/interp"> 1 </int>
+		<dictionary name="tracks/0/keys" shared="false">
+			<string> "cont" </string>
+			<bool> False </bool>
+			<string> "times" </string>
+			<real_array  len="6"> 				0, 0.25, 0.5, 0.75, 1, 1.25 </real_array>
+			<string> "transitions" </string>
+			<real_array  len="6"> 				1, 1, 1, 1, 1, 1 </real_array>
+			<string> "values" </string>
+			<array  len="6" shared="false">
+				<int> 0 </int>
+				<int> 1 </int>
+				<int> 2 </int>
+				<int> 3 </int>
+				<int> 4 </int>
+				<int> 0 </int>
+			</array>
+		</dictionary>
+
 	</resource>
 	<resource type="ColorRamp" path="local://6">
 		<real_array name="offsets" len="2"> 			0, 1 </real_array>
@@ -153,21 +153,21 @@
 
 	</resource>
 	<resource type="SampleLibrary" path="local://5">
-		<dictionary name="samples/explode" shared="false">
+		<dictionary name="samples/hit" shared="false">
 			<string> "db" </string>
 			<real> 0 </real>
 			<string> "pitch" </string>
 			<real> 1 </real>
 			<string> "sample" </string>
-			<resource  external="3">  </resource>
+			<resource  external="4">  </resource>
 		</dictionary>
-		<dictionary name="samples/hit" shared="false">
+		<dictionary name="samples/explode" shared="false">
 			<string> "db" </string>
 			<real> 0 </real>
 			<string> "pitch" </string>
 			<real> 1 </real>
 			<string> "sample" </string>
-			<resource  external="4">  </resource>
+			<resource  external="3">  </resource>
 		</dictionary>
 
 	</resource>
@@ -177,10 +177,12 @@
 			<int> 0 </int>
 			<string> "conns" </string>
 			<int_array  len="0"> 				 </int_array>
+			<string> "editable_instances" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "names" </string>
-			<string_array  len="107">
+			<string_array  len="108">
 				<string> "enemy" </string>
-				<string> "RigidBody2D" </string>
 				<string> "input/pickable" </string>
 				<string> "shapes/0/shape" </string>
 				<string> "shapes/0/transform" </string>
@@ -210,8 +212,8 @@
 				<string> "damp_override/angular" </string>
 				<string> "script/script" </string>
 				<string> "__meta__" </string>
+				<string> "RigidBody2D" </string>
 				<string> "enabler" </string>
-				<string> "VisibilityEnabler2D" </string>
 				<string> "transform/pos" </string>
 				<string> "transform/scale" </string>
 				<string> "rect" </string>
@@ -220,23 +222,24 @@
 				<string> "enabler/pause_particles" </string>
 				<string> "enabler/process_parent" </string>
 				<string> "enabler/fixed_process_parent" </string>
+				<string> "VisibilityEnabler2D" </string>
 				<string> "anim" </string>
-				<string> "AnimationPlayer" </string>
 				<string> "playback/process_mode" </string>
 				<string> "playback/default_blend_time" </string>
 				<string> "root/root" </string>
 				<string> "anims/idle" </string>
-				<string> "anims/walk" </string>
 				<string> "anims/explode" </string>
+				<string> "anims/walk" </string>
 				<string> "playback/active" </string>
 				<string> "playback/speed" </string>
 				<string> "blend_times" </string>
 				<string> "autoplay" </string>
+				<string> "AnimationPlayer" </string>
 				<string> "sprite" </string>
-				<string> "Sprite" </string>
 				<string> "texture" </string>
 				<string> "hframes" </string>
 				<string> "frame" </string>
+				<string> "Sprite" </string>
 				<string> "CollisionShape2D" </string>
 				<string> "shape" </string>
 				<string> "trigger" </string>
@@ -244,10 +247,11 @@
 				<string> "CollisionShape2D 2" </string>
 				<string> "CollisionShape2D 3" </string>
 				<string> "raycast_left" </string>
-				<string> "RayCast2D" </string>
 				<string> "enabled" </string>
 				<string> "cast_to" </string>
 				<string> "layer_mask" </string>
+				<string> "type_mask" </string>
+				<string> "RayCast2D" </string>
 				<string> "raycast_right" </string>
 				<string> "Particles2D" </string>
 				<string> "visibility/self_opacity" </string>
@@ -277,7 +281,6 @@
 				<string> "randomness/spin_velocity" </string>
 				<string> "color/color_ramp" </string>
 				<string> "sound" </string>
-				<string> "SamplePlayer2D" </string>
 				<string> "params/volume_db" </string>
 				<string> "params/pitch_scale" </string>
 				<string> "params/attenuation/min_distance" </string>
@@ -286,13 +289,17 @@
 				<string> "config/polyphony" </string>
 				<string> "config/samples" </string>
 				<string> "config/pitch_random" </string>
+				<string> "SamplePlayer2D" </string>
 			</string_array>
 			<string> "node_count" </string>
 			<int> 11 </int>
+			<string> "node_paths" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "nodes" </string>
-			<int_array  len="285"> 				-1, -1, 1, 0, -1, 29, 2, 0, 3, 1, 4, 2, 5, 0, 6, 1, 7, 3, 8, 0, 9, 1, 10, 4, 11, 0, 12, 5, 13, 5, 14, 6, 15, 7, 16, 8, 17, 8, 18, 7, 19, 0, 20, 9, 21, 10, 22, 0, 23, 0, 24, 11, 25, 12, 26, 8, 27, 13, 28, 13, 29, 14, 30, 15, 0, 0, 0, 32, 31, -1, 8, 33, 16, 34, 17, 35, 18, 36, 11, 37, 11, 38, 11, 39, 0, 40, 0, 0, 0, 0, 42, 41, -1, 10, 43, 5, 44, 8, 45, 19, 46, 20, 47, 21, 48, 22, 49, 11, 50, 23, 51, 24, 52, 25, 0, 0, 0, 54, 53, -1, 3, 55, 26, 56, 27, 57, 10, 0, 0, 0, 58, 58, -1, 4, 33, 28, 59, 1, 60, 0, 61, 29, 0, 0, 0, 58, 62, -1, 4, 33, 30, 59, 1, 60, 0, 61, 29, 0, 0, 0, 58, 63, -1, 4, 33, 31, 59, 1, 60, 0, 61, 29, 0, 0, 0, 65, 64, -1, 4, 33, 32, 66, 11, 67, 33, 68, 5, 0, 0, 0, 65, 69, -1, 4, 33, 34, 66, 11, 67, 33, 68, 5, 0, 0, 0, 70, 70, -1, 26, 71, 35, 72, 5, 73, 36, 74, 37, 75, 37, 76, 0, 77, 38, 78, 39, 79, 8, 80, 40, 81, 41, 82, 42, 83, 8, 84, 8, 85, 43, 86, 8, 87, 8, 88, 8, 89, 8, 90, 42, 91, 23, 92, 8, 93, 7, 94, 8, 95, 7, 96, 44, 0, 0, 0, 98, 97, -1, 8, 99, 8, 100, 7, 101, 7, 102, 45, 103, 7, 104, 46, 105, 47, 106, 8, 0 </int_array>
+			<int_array  len="289"> 				-1, -1, 30, 0, -1, 29, 1, 0, 2, 1, 3, 2, 4, 0, 5, 1, 6, 3, 7, 0, 8, 1, 9, 4, 10, 0, 11, 5, 12, 5, 13, 6, 14, 7, 15, 8, 16, 8, 17, 7, 18, 0, 19, 9, 20, 10, 21, 0, 22, 0, 23, 11, 24, 12, 25, 8, 26, 13, 27, 13, 28, 14, 29, 15, 0, 0, 0, 40, 31, -1, 8, 32, 16, 33, 17, 34, 18, 35, 11, 36, 11, 37, 11, 38, 0, 39, 0, 0, 0, 0, 52, 41, -1, 10, 42, 5, 43, 8, 44, 19, 45, 20, 46, 21, 47, 22, 48, 11, 49, 23, 50, 24, 51, 25, 0, 0, 0, 57, 53, -1, 3, 54, 26, 55, 27, 56, 10, 0, 0, 0, 58, 58, -1, 4, 32, 28, 59, 1, 60, 0, 61, 29, 0, 0, 0, 58, 62, -1, 4, 32, 30, 59, 1, 60, 0, 61, 29, 0, 0, 0, 58, 63, -1, 4, 32, 31, 59, 1, 60, 0, 61, 29, 0, 0, 0, 69, 64, -1, 5, 32, 32, 65, 11, 66, 33, 67, 5, 68, 34, 0, 0, 0, 69, 70, -1, 5, 32, 35, 65, 11, 66, 33, 67, 5, 68, 34, 0, 0, 0, 71, 71, -1, 26, 72, 36, 73, 5, 74, 37, 75, 38, 76, 38, 77, 0, 78, 39, 79, 40, 80, 8, 81, 41, 82, 42, 83, 43, 84, 8, 85, 8, 86, 44, 87, 8, 88, 8, 89, 8, 90, 8, 91, 43, 92, 23, 93, 8, 94, 7, 95, 8, 96, 7, 97, 45, 0, 0, 0, 107, 98, -1, 8, 99, 8, 100, 7, 101, 7, 102, 46, 103, 7, 104, 47, 105, 48, 106, 8, 0 </int_array>
 			<string> "variants" </string>
-			<array  len="48" shared="false">
+			<array  len="49" shared="false">
 				<bool> False </bool>
 				<resource  resource_type="Shape2D" path="local://1">  </resource>
 				<matrix32> 1, -0, 0, 1, -1.08072, -2.16144 </matrix32>
@@ -449,8 +456,8 @@
 				<rect2> -10, -10, 20, 20 </rect2>
 				<node_path> ".." </node_path>
 				<resource  resource_type="Animation" path="local://2">  </resource>
-				<resource  resource_type="Animation" path="local://4">  </resource>
 				<resource  resource_type="Animation" path="local://3">  </resource>
+				<resource  resource_type="Animation" path="local://4">  </resource>
 				<real> 3 </real>
 				<array  len="0" shared="false">
 				</array>
@@ -463,6 +470,7 @@
 				<vector2> -12.495, 3.53415 </vector2>
 				<vector2> -33.2868, -9.34363 </vector2>
 				<vector2> 0, 45 </vector2>
+				<int> 15 </int>
 				<vector2> 29.1987, -9.34363 </vector2>
 				<real> 0.121212 </real>
 				<int> 32 </int>
@@ -479,7 +487,7 @@
 				<resource  resource_type="SampleLibrary" path="local://5">  </resource>
 			</array>
 			<string> "version" </string>
-			<int> 1 </int>
+			<int> 2 </int>
 		</dictionary>
 
 	</main_resource>

+ 7 - 14
demos/2d/platformer/moving_platform.gd

@@ -1,27 +1,20 @@
 
 extends Node2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
 export var motion = Vector2()
 export var cycle = 1.0
-var accum=0.0
+var accum = 0.0
 
-func _fixed_process(delta):
 
-	accum += delta * (1.0/cycle) * PI * 2.0
-	accum = fmod(accum,PI*2.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 
+	xf[2]= motion*d 
 	get_node("platform").set_transform(xf)
-		
+
 
 func _ready():
-	# Initalization here
 	set_fixed_process(true)
-	pass
-
-

+ 117 - 97
demos/2d/platformer/moving_platform.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="4" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
-	<ext_resource path="res://moving_platform.*" type="Texture"></ext_resource>
-	<ext_resource path="res://moving_platform.*" type="Script"></ext_resource>
+<resource_file type="PackedScene" subresource_count="4" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+	<ext_resource path="res://moving_platform.png" type="Texture" index="1"></ext_resource>
+	<ext_resource path="res://moving_platform.gd" type="Script" index="0"></ext_resource>
 	<resource type="ConvexPolygonShape2D" path="local://1">
 		<real name="custom_solver_bias"> 0 </real>
 		<vector2_array name="points" len="4"> 			-88, 24, -88, -24, 88, -24, 88, 24 </vector2_array>
@@ -9,169 +9,189 @@
 	</resource>
 	<main_resource>
 		<dictionary name="_bundled" shared="false">
+			<string> "conn_count" </string>
+			<int> 0 </int>
+			<string> "conns" </string>
+			<int_array  len="0"> 				 </int_array>
+			<string> "editable_instances" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "names" </string>
-			<string_array  len="46">
+			<string_array  len="36">
 				<string> "moving_platform" </string>
-				<string> "Node2D" </string>
-				<string> "visibility/visible" </string>
-				<string> "visibility/opacity" </string>
-				<string> "visibility/self_opacity" </string>
-				<string> "visibility/on_top" </string>
-				<string> "transform/pos" </string>
-				<string> "transform/rot" </string>
-				<string> "transform/scale" </string>
 				<string> "script/script" </string>
 				<string> "__meta__" </string>
 				<string> "motion" </string>
 				<string> "cycle" </string>
+				<string> "Node2D" </string>
 				<string> "platform" </string>
-				<string> "RigidBody2D" </string>
-				<string> "shape_count" </string>
+				<string> "input/pickable" </string>
 				<string> "shapes/0/shape" </string>
 				<string> "shapes/0/transform" </string>
 				<string> "shapes/0/trigger" </string>
+				<string> "collision/layers" </string>
+				<string> "collision/mask" </string>
 				<string> "mode" </string>
 				<string> "mass" </string>
 				<string> "friction" </string>
 				<string> "bounce" </string>
+				<string> "gravity_scale" </string>
 				<string> "custom_integrator" </string>
 				<string> "continuous_cd" </string>
 				<string> "contacts_reported" </string>
 				<string> "contact_monitor" </string>
-				<string> "active" </string>
+				<string> "sleeping" </string>
 				<string> "can_sleep" </string>
 				<string> "velocity/linear" </string>
 				<string> "velocity/angular" </string>
+				<string> "damp_override/linear" </string>
+				<string> "damp_override/angular" </string>
+				<string> "RigidBody2D" </string>
 				<string> "Sprite" </string>
 				<string> "texture" </string>
-				<string> "centered" </string>
-				<string> "offset" </string>
-				<string> "flip_h" </string>
-				<string> "flip_v" </string>
-				<string> "vframes" </string>
-				<string> "hframes" </string>
-				<string> "frame" </string>
-				<string> "modulate" </string>
-				<string> "region" </string>
-				<string> "region_rect" </string>
 				<string> "CollisionPolygon2D" </string>
 				<string> "build_mode" </string>
 				<string> "polygon" </string>
+				<string> "shape_range" </string>
+				<string> "trigger" </string>
 			</string_array>
-			<string> "version" </string>
-			<int> 1 </int>
-			<string> "conn_count" </string>
-			<int> 0 </int>
 			<string> "node_count" </string>
 			<int> 4 </int>
+			<string> "node_paths" </string>
+			<array  len="0" shared="false">
+			</array>
+			<string> "nodes" </string>
+			<int_array  len="88"> 				-1, -1, 5, 0, -1, 4, 1, 0, 2, 1, 3, 2, 4, 3, 0, 0, 0, 28, 6, -1, 21, 7, 4, 8, 5, 9, 6, 10, 4, 11, 7, 12, 7, 13, 8, 14, 3, 15, 3, 16, 9, 17, 3, 18, 4, 19, 10, 20, 10, 21, 4, 22, 4, 23, 11, 24, 2, 25, 9, 26, 12, 27, 12, 0, 1, 0, 29, 29, -1, 1, 30, 13, 0, 1, 0, 31, 31, -1, 4, 32, 10, 33, 14, 34, 15, 35, 4, 0 </int_array>
 			<string> "variants" </string>
-			<array  len="17" shared="false">
-				<bool> True </bool>
-				<real> 1 </real>
-				<vector2> 0, 0 </vector2>
-				<real> 0 </real>
-				<vector2> 1, 1 </vector2>
-				<resource  resource_type="Script" path="res://moving_platform.*">  </resource>
+			<array  len="16" shared="false">
+				<resource  external="0">  </resource>
 				<dictionary  shared="false">
+					<string> "__editor_plugin_screen__" </string>
+					<string> "2D" </string>
 					<string> "__editor_plugin_states__" </string>
 					<dictionary  shared="false">
-						<string> "Script" </string>
-						<dictionary  shared="false">
-							<string> "current" </string>
-							<int> 0 </int>
-							<string> "sources" </string>
-							<array  len="4" shared="false">
-								<string> "res://moving_platform.gd" </string>
-								<string> "res://enemy.gd" </string>
-								<string> "res://player.gd" </string>
-								<string> "res://coin.gd" </string>
-							</array>
-						</dictionary>
 						<string> "2D" </string>
 						<dictionary  shared="false">
-							<string> "pixel_snap" </string>
+							<string> "ofs" </string>
+							<vector2> -210.652, -172.81 </vector2>
+							<string> "snap_grid" </string>
+							<bool> False </bool>
+							<string> "snap_offset" </string>
+							<vector2> 0, 0 </vector2>
+							<string> "snap_pixel" </string>
+							<bool> False </bool>
+							<string> "snap_relative" </string>
 							<bool> False </bool>
+							<string> "snap_rotation" </string>
+							<bool> False </bool>
+							<string> "snap_rotation_offset" </string>
+							<real> 0 </real>
+							<string> "snap_rotation_step" </string>
+							<real> 0.261799 </real>
+							<string> "snap_show_grid" </string>
+							<bool> False </bool>
+							<string> "snap_step" </string>
+							<vector2> 10, 10 </vector2>
 							<string> "zoom" </string>
 							<real> 1.360373 </real>
-							<string> "ofs" </string>
-							<vector2> -210.652, -172.81 </vector2>
 						</dictionary>
 						<string> "3D" </string>
 						<dictionary  shared="false">
-							<string> "zfar" </string>
-							<real> 500 </real>
+							<string> "ambient_light_color" </string>
+							<color> 0.15, 0.15, 0.15, 1 </color>
+							<string> "default_light" </string>
+							<bool> True </bool>
+							<string> "default_srgb" </string>
+							<bool> False </bool>
+							<string> "deflight_rot_x" </string>
+							<real> 0.942478 </real>
+							<string> "deflight_rot_y" </string>
+							<real> 0.628319 </real>
 							<string> "fov" </string>
-							<real> 400 </real>
+							<real> 179 </real>
+							<string> "show_grid" </string>
+							<bool> True </bool>
+							<string> "show_origin" </string>
+							<bool> True </bool>
+							<string> "viewport_mode" </string>
+							<int> 1 </int>
 							<string> "viewports" </string>
 							<array  len="4" shared="false">
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> True </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 							</array>
-							<string> "viewport_mode" </string>
-							<int> 1 </int>
-							<string> "default_light" </string>
-							<bool> True </bool>
-							<string> "show_grid" </string>
-							<bool> True </bool>
-							<string> "show_origin" </string>
-							<bool> True </bool>
+							<string> "zfar" </string>
+							<real> 500 </real>
 							<string> "znear" </string>
 							<real> 0.1 </real>
 						</dictionary>
+						<string> "Anim" </string>
+						<dictionary  shared="false">
+							<string> "visible" </string>
+							<bool> False </bool>
+						</dictionary>
 					</dictionary>
 					<string> "__editor_run_settings__" </string>
 					<dictionary  shared="false">
@@ -180,24 +200,24 @@
 						<string> "run_mode" </string>
 						<int> 0 </int>
 					</dictionary>
-					<string> "__editor_plugin_screen__" </string>
-					<string> "2D" </string>
 				</dictionary>
-				<int> 1 </int>
+				<vector2> 0, 0 </vector2>
+				<real> 1 </real>
+				<bool> False </bool>
 				<resource  resource_type="Shape2D" path="local://1">  </resource>
 				<matrix32> 1, -0, 0, 1, 0, 0 </matrix32>
-				<bool> False </bool>
+				<int> 1 </int>
 				<int> 3 </int>
+				<real> 0 </real>
 				<int> 0 </int>
-				<resource  resource_type="Texture" path="res://moving_platform.*">  </resource>
-				<color> 1, 1, 1, 1 </color>
-				<rect2> 0, 0, 0, 0 </rect2>
+				<bool> True </bool>
+				<real> -1 </real>
+				<resource  external="1">  </resource>
 				<vector2_array  len="4"> 					-88, -24, 88, -24, 88, 24, -88, 24 </vector2_array>
+				<vector2> -1, -1 </vector2>
 			</array>
-			<string> "nodes" </string>
-			<int_array  len="150"> 				-1, -1, 1, 0, -1, 11, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 11, 2, 12, 1, 0, 0, 0, 14, 13, -1, 23, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 15, 7, 16, 8, 17, 9, 18, 10, 19, 11, 20, 1, 21, 1, 22, 3, 23, 10, 24, 10, 25, 12, 26, 10, 27, 0, 28, 0, 29, 2, 30, 3, 0, 1, 0, 31, 31, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 32, 13, 33, 0, 34, 2, 35, 10, 36, 10, 37, 7, 38, 7, 39, 12, 40, 14, 41, 10, 42, 15, 0, 1, 0, 43, 43, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 44, 12, 45, 16, 0 </int_array>
-			<string> "conns" </string>
-			<int_array  len="0"> 				 </int_array>
+			<string> "version" </string>
+			<int> 2 </int>
 		</dictionary>
 
 	</main_resource>

+ 27 - 40
demos/2d/platformer/one_way_platform.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="3" version="1.1" version_name="Godot Engine v1.1.rc1.custom_build">
-	<ext_resource path="res://one_way_platform.png" type="Texture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+	<ext_resource path="res://one_way_platform.png" type="Texture" index="0"></ext_resource>
 	<resource type="RectangleShape2D" path="local://1">
 		<real name="custom_solver_bias"> 0 </real>
 		<vector2 name="extents"> 100, 10 </vector2>
@@ -12,22 +12,13 @@
 			<int> 0 </int>
 			<string> "conns" </string>
 			<int_array  len="0"> 				 </int_array>
+			<string> "editable_instances" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "names" </string>
-			<string_array  len="42">
+			<string_array  len="23">
 				<string> "one_way_platform" </string>
-				<string> "StaticBody2D" </string>
-				<string> "_import_path" </string>
-				<string> "visibility/visible" </string>
-				<string> "visibility/opacity" </string>
-				<string> "visibility/self_opacity" </string>
-				<string> "visibility/light_mask" </string>
-				<string> "transform/pos" </string>
-				<string> "transform/rot" </string>
-				<string> "transform/scale" </string>
-				<string> "z/z" </string>
-				<string> "z/relative" </string>
 				<string> "input/pickable" </string>
-				<string> "shape_count" </string>
 				<string> "shapes/0/shape" </string>
 				<string> "shapes/0/transform" </string>
 				<string> "shapes/0/trigger" </string>
@@ -40,42 +31,34 @@
 				<string> "friction" </string>
 				<string> "bounce" </string>
 				<string> "__meta__" </string>
+				<string> "StaticBody2D" </string>
 				<string> "sprite" </string>
-				<string> "Sprite" </string>
 				<string> "texture" </string>
-				<string> "centered" </string>
-				<string> "offset" </string>
-				<string> "flip_h" </string>
-				<string> "flip_v" </string>
-				<string> "vframes" </string>
-				<string> "hframes" </string>
-				<string> "frame" </string>
-				<string> "modulate" </string>
-				<string> "region" </string>
-				<string> "region_rect" </string>
+				<string> "Sprite" </string>
 				<string> "CollisionShape2D" </string>
+				<string> "transform/pos" </string>
 				<string> "shape" </string>
 				<string> "trigger" </string>
+				<string> "_update_shape_index" </string>
 			</string_array>
 			<string> "node_count" </string>
 			<int> 3 </int>
+			<string> "node_paths" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "nodes" </string>
-			<int_array  len="135"> 				-1, -1, 1, 0, -1, 24, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 1, 12, 8, 13, 3, 14, 9, 15, 10, 16, 8, 17, 3, 18, 3, 19, 11, 20, 12, 21, 4, 22, 5, 23, 2, 24, 5, 25, 13, 0, 0, 0, 27, 26, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 1, 28, 14, 29, 1, 30, 4, 31, 8, 32, 8, 33, 3, 34, 3, 35, 7, 36, 15, 37, 8, 38, 16, 0, 0, 0, 39, 39, -1, 12, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 17, 8, 5, 9, 6, 10, 7, 11, 1, 40, 9, 41, 8, 0 </int_array>
+			<int_array  len="57"> 				-1, -1, 14, 0, -1, 13, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 8, 12, 7, 13, 9, 0, 0, 0, 17, 15, -1, 1, 16, 10, 0, 0, 0, 18, 18, -1, 4, 19, 11, 20, 1, 21, 0, 22, 12, 0 </int_array>
 			<string> "variants" </string>
-			<array  len="18" shared="false">
-				<node_path> "" </node_path>
-				<bool> True </bool>
-				<real> 1 </real>
-				<int> 1 </int>
-				<vector2> 0, 0 </vector2>
-				<real> 0 </real>
-				<vector2> 1, 1 </vector2>
-				<int> 0 </int>
+			<array  len="13" shared="false">
 				<bool> False </bool>
 				<resource  resource_type="Shape2D" path="local://1">  </resource>
 				<matrix32> 1, -0, 0, 1, 1.46304, -13.1672 </matrix32>
+				<int> 1 </int>
 				<vector2> 0, 1 </vector2>
 				<real> 20 </real>
+				<vector2> 0, 0 </vector2>
+				<real> 0 </real>
+				<real> 1 </real>
 				<dictionary  shared="false">
 					<string> "__editor_plugin_screen__" </string>
 					<string> "2D" </string>
@@ -198,6 +181,11 @@
 							<string> "znear" </string>
 							<real> 0.1 </real>
 						</dictionary>
+						<string> "Anim" </string>
+						<dictionary  shared="false">
+							<string> "visible" </string>
+							<bool> False </bool>
+						</dictionary>
 					</dictionary>
 					<string> "__editor_run_settings__" </string>
 					<dictionary  shared="false">
@@ -207,13 +195,12 @@
 						<int> 0 </int>
 					</dictionary>
 				</dictionary>
-				<resource  resource_type="Texture" path="res://one_way_platform.png">  </resource>
-				<color> 1, 1, 1, 1 </color>
-				<rect2> 0, 0, 0, 0 </rect2>
+				<resource  external="0">  </resource>
 				<vector2> 1.46304, -13.1672 </vector2>
+				<int> -1 </int>
 			</array>
 			<string> "version" </string>
-			<int> 1 </int>
+			<int> 2 </int>
 		</dictionary>
 
 	</main_resource>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 154 - 97
demos/2d/platformer/parallax_bg.xml


+ 104 - 133
demos/2d/platformer/player.gd

@@ -1,3 +1,4 @@
+
 extends RigidBody2D
 
 # Character Demo, written by Juan Linietsky.
@@ -24,42 +25,40 @@ extends RigidBody2D
 # -Friction cant be used, so floor velocity must be considered
 #  for moving platforms.
 
-var anim=""
-var siding_left=false
-var jumping=false
-var stopping_jump=false
-var shooting=false
+# 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 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 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 airborne_time = 1e20
+var shoot_time = 1e20
 
 var MAX_SHOOT_POSE_TIME = 0.3
 
 var bullet = preload("res://bullet.xml")
 
-var floor_h_velocity=0.0
+var floor_h_velocity = 0.0
 var enemy
 
-func _integrate_forces(s):
-
-	
 
+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
-	
+	var new_anim = anim
+	var new_siding_left = siding_left
 	
 	# Get the controls
 	var move_left = Input.is_action_pressed("move_left")
@@ -74,188 +73,160 @@ func _integrate_forces(s):
 		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
 	
+	# 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
+	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
+		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.
-	
+	# compensates for physics imprecission, as well as human reaction delay.
 	if (shoot and not shooting):
-		shoot_time=0
+		shoot_time = 0
 		var bi = bullet.instance()
 		var ss
 		if (siding_left):
-			ss=-1.0
+			ss = -1.0
 		else:
-			ss=1.0
-		var pos = get_pos() + get_node("bullet_shoot").get_pos()*Vector2(ss,1.0)
-
+			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)	
+		
+		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
-
-
+		PS2D.body_add_collision_exception(bi.get_rid(), get_rid()) # Make bullet and this not collide
 	else:
-		shoot_time+=step
-		
+		shoot_time += step
 	
 	if (found_floor):
-		airborne_time=0.0 
+		airborne_time = 0.0
 	else:
-		airborne_time+=step #time it spent in the air
-		
+		airborne_time += step # Time it spent in the air
+	
 	var on_floor = airborne_time < MAX_FLOOR_AIRBORNE_TIME
 
-	# Process jump		
+	# Process jump
 	if (jumping):
-		if (lv.y>0):
-			#set off the jumping flag if going down
-			jumping=false
+		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
+			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			
+				lv.x -= WALK_ACCEL*step
 		elif (move_right and not move_left):
 			if (lv.x < WALK_MAX_VELOCITY):
-				lv.x+=WALK_ACCEL*step
+				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
+			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
+			lv.y = -JUMP_VELOCITY
+			jumping = true
+			stopping_jump = false
 			get_node("sound").play("jump")
-			
-		#check siding
 		
+		# Check siding
 		if (lv.x < 0 and move_left):
-			new_siding_left=true
+			new_siding_left = true
 		elif (lv.x > 0 and move_right):
-			new_siding_left=false
+			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"
+			new_anim = "jumping"
+		elif (abs(lv.x) < 0.1):
+			if (shoot_time < MAX_SHOOT_POSE_TIME):
+				new_anim = "idle_weapon"
 			else:
-				new_anim="idle"
+				new_anim = "idle"
 		else:
-			if (shoot_time<MAX_SHOOT_POSE_TIME):
-				new_anim="run_weapon"
+			if (shoot_time < MAX_SHOOT_POSE_TIME):
+				new_anim = "run_weapon"
 			else:
-				new_anim="run"
+				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			
+				lv.x -= AIR_ACCEL*step
 		elif (move_right and not move_left):
 			if (lv.x < WALK_MAX_VELOCITY):
-				lv.x+=AIR_ACCEL*step
+				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"
+			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"
+				new_anim = "jumping"
 		else:
-			if (shoot_time<MAX_SHOOT_POSE_TIME):
-				new_anim="falling_weapon"
+			if (shoot_time < MAX_SHOOT_POSE_TIME):
+				new_anim = "falling_weapon"
 			else:
-				new_anim="falling"
-		
-
-	#Update siding
+				new_anim = "falling"
 	
-	if (new_siding_left!=siding_left):
+	# Update siding
+	if (new_siding_left != siding_left):
 		if (new_siding_left):
-			get_node("sprite").set_scale( Vector2(-1,1) )
+			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
+			get_node("sprite").set_scale(Vector2(1, 1))
 		
+		siding_left = new_siding_left
 	
-														
-																																							
-	#Finally, apply gravity and set back the linear velocity
-	lv+=s.get_total_gravity()*step
-	s.set_linear_velocity(lv)
-	
+	# 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():
-	# Initalization here
-
+	enemy = ResourceLoader.load("res://enemy.xml")
+	
 #	if !Globals.has_singleton("Facebook"):
-#        	return
+#		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)
-	enemy = ResourceLoader.load("res://enemy.xml")
-	pass
-
-
-

+ 108 - 94
demos/2d/platformer/player.xml

@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="25" version="1.1" version_name="Godot Engine v1.1.stable.custom_build">
-	<ext_resource path="res://player.gd" type="Script"></ext_resource>
-	<ext_resource path="res://robot_demo.png" type="Texture"></ext_resource>
-	<ext_resource path="res://bullet.png" type="Texture"></ext_resource>
-	<ext_resource path="res://sound_coin.wav" type="Sample"></ext_resource>
-	<ext_resource path="res://sound_jump.wav" type="Sample"></ext_resource>
-	<ext_resource path="res://sound_shoot.wav" type="Sample"></ext_resource>
-	<ext_resource path="res://osb_left.png" type="Texture"></ext_resource>
-	<ext_resource path="res://osb_right.png" type="Texture"></ext_resource>
-	<ext_resource path="res://osb_jump.png" type="Texture"></ext_resource>
-	<ext_resource path="res://osb_fire.png" type="Texture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="25" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+	<ext_resource path="res://bullet.png" type="Texture" index="2"></ext_resource>
+	<ext_resource path="res://sound_coin.wav" type="Sample" index="3"></ext_resource>
+	<ext_resource path="res://player.gd" type="Script" index="0"></ext_resource>
+	<ext_resource path="res://robot_demo.png" type="Texture" index="1"></ext_resource>
+	<ext_resource path="res://sound_shoot.wav" type="Sample" index="5"></ext_resource>
+	<ext_resource path="res://sound_jump.wav" type="Sample" index="4"></ext_resource>
+	<ext_resource path="res://osb_left.png" type="Texture" index="6"></ext_resource>
+	<ext_resource path="res://osb_right.png" type="Texture" index="7"></ext_resource>
+	<ext_resource path="res://osb_jump.png" type="Texture" index="8"></ext_resource>
+	<ext_resource path="res://osb_fire.png" type="Texture" index="9"></ext_resource>
 	<resource type="RayShape2D" path="local://1">
 		<real name="custom_solver_bias"> 0.5 </real>
 		<real name="length"> 20 </real>
@@ -78,8 +78,8 @@
 		</dictionary>
 
 	</resource>
-	<resource type="Animation" path="local://5">
-		<string name="resource/name"> "idle_weapon" </string>
+	<resource type="Animation" path="local://10">
+		<string name="resource/name"> "falling_weapon" </string>
 		<real name="length"> 0.5 </real>
 		<bool name="loop"> True </bool>
 		<real name="step"> 0.25 </real>
@@ -95,13 +95,14 @@
 			<real_array  len="1"> 				1 </real_array>
 			<string> "values" </string>
 			<array  len="1" shared="false">
-				<int> 25 </int>
+				<int> 26 </int>
 			</array>
 		</dictionary>
 
 	</resource>
-	<resource type="Animation" path="local://6">
-		<real name="length"> 1.25 </real>
+	<resource type="Animation" path="local://5">
+		<string name="resource/name"> "idle_weapon" </string>
+		<real name="length"> 0.5 </real>
 		<bool name="loop"> True </bool>
 		<real name="step"> 0.25 </real>
 		<string name="tracks/0/type"> "value" </string>
@@ -111,23 +112,19 @@
 			<string> "cont" </string>
 			<bool> False </bool>
 			<string> "times" </string>
-			<real_array  len="6"> 				0, 0.25, 0.5, 0.75, 1, 1.25 </real_array>
+			<real_array  len="1"> 				0 </real_array>
 			<string> "transitions" </string>
-			<real_array  len="6"> 				1, 1, 1, 1, 1, 1 </real_array>
+			<real_array  len="1"> 				1 </real_array>
 			<string> "values" </string>
-			<array  len="6" shared="false">
-				<int> 0 </int>
-				<int> 1 </int>
-				<int> 2 </int>
-				<int> 3 </int>
-				<int> 4 </int>
-				<int> 0 </int>
+			<array  len="1" shared="false">
+				<int> 25 </int>
 			</array>
 		</dictionary>
 
 	</resource>
-	<resource type="Animation" path="local://11">
-		<real name="length"> 1.25 </real>
+	<resource type="Animation" path="local://7">
+		<string name="resource/name"> "crouch" </string>
+		<real name="length"> 0.01 </real>
 		<bool name="loop"> True </bool>
 		<real name="step"> 0.25 </real>
 		<string name="tracks/0/type"> "value" </string>
@@ -137,24 +134,19 @@
 			<string> "cont" </string>
 			<bool> False </bool>
 			<string> "times" </string>
-			<real_array  len="6"> 				0, 0.25, 0.5, 0.75, 1, 1.25 </real_array>
+			<real_array  len="1"> 				0 </real_array>
 			<string> "transitions" </string>
-			<real_array  len="6"> 				1, 1, 1, 1, 1, 1 </real_array>
+			<real_array  len="1"> 				1 </real_array>
 			<string> "values" </string>
-			<array  len="6" shared="false">
-				<int> 5 </int>
-				<int> 6 </int>
-				<int> 7 </int>
-				<int> 8 </int>
-				<int> 9 </int>
-				<int> 5 </int>
+			<array  len="1" shared="false">
+				<int> 22 </int>
 			</array>
 		</dictionary>
 
 	</resource>
-	<resource type="Animation" path="local://10">
-		<string name="resource/name"> "falling_weapon" </string>
-		<real name="length"> 0.5 </real>
+	<resource type="Animation" path="local://8">
+		<string name="resource/name"> "falling" </string>
+		<real name="length"> 0.01 </real>
 		<bool name="loop"> True </bool>
 		<real name="step"> 0.25 </real>
 		<string name="tracks/0/type"> "value" </string>
@@ -169,14 +161,13 @@
 			<real_array  len="1"> 				1 </real_array>
 			<string> "values" </string>
 			<array  len="1" shared="false">
-				<int> 26 </int>
+				<int> 21 </int>
 			</array>
 		</dictionary>
 
 	</resource>
-	<resource type="Animation" path="local://7">
-		<string name="resource/name"> "crouch" </string>
-		<real name="length"> 0.01 </real>
+	<resource type="Animation" path="local://9">
+		<real name="length"> 1.25 </real>
 		<bool name="loop"> True </bool>
 		<real name="step"> 0.25 </real>
 		<string name="tracks/0/type"> "value" </string>
@@ -186,19 +177,23 @@
 			<string> "cont" </string>
 			<bool> False </bool>
 			<string> "times" </string>
-			<real_array  len="1"> 				0 </real_array>
+			<real_array  len="6"> 				0, 0.25, 0.5, 0.75, 1, 1.25 </real_array>
 			<string> "transitions" </string>
-			<real_array  len="1"> 				1 </real_array>
+			<real_array  len="6"> 				1, 1, 1, 1, 1, 1 </real_array>
 			<string> "values" </string>
-			<array  len="1" shared="false">
-				<int> 22 </int>
+			<array  len="6" shared="false">
+				<int> 10 </int>
+				<int> 11 </int>
+				<int> 12 </int>
+				<int> 13 </int>
+				<int> 14 </int>
+				<int> 5 </int>
 			</array>
 		</dictionary>
 
 	</resource>
-	<resource type="Animation" path="local://8">
-		<string name="resource/name"> "falling" </string>
-		<real name="length"> 0.01 </real>
+	<resource type="Animation" path="local://12">
+		<real name="length"> 0.5 </real>
 		<bool name="loop"> True </bool>
 		<real name="step"> 0.25 </real>
 		<string name="tracks/0/type"> "value" </string>
@@ -213,12 +208,12 @@
 			<real_array  len="1"> 				1 </real_array>
 			<string> "values" </string>
 			<array  len="1" shared="false">
-				<int> 21 </int>
+				<int> 26 </int>
 			</array>
 		</dictionary>
 
 	</resource>
-	<resource type="Animation" path="local://9">
+	<resource type="Animation" path="local://6">
 		<real name="length"> 1.25 </real>
 		<bool name="loop"> True </bool>
 		<real name="step"> 0.25 </real>
@@ -234,18 +229,18 @@
 			<real_array  len="6"> 				1, 1, 1, 1, 1, 1 </real_array>
 			<string> "values" </string>
 			<array  len="6" shared="false">
-				<int> 10 </int>
-				<int> 11 </int>
-				<int> 12 </int>
-				<int> 13 </int>
-				<int> 14 </int>
-				<int> 5 </int>
+				<int> 0 </int>
+				<int> 1 </int>
+				<int> 2 </int>
+				<int> 3 </int>
+				<int> 4 </int>
+				<int> 0 </int>
 			</array>
 		</dictionary>
 
 	</resource>
-	<resource type="Animation" path="local://12">
-		<real name="length"> 0.5 </real>
+	<resource type="Animation" path="local://11">
+		<real name="length"> 1.25 </real>
 		<bool name="loop"> True </bool>
 		<real name="step"> 0.25 </real>
 		<string name="tracks/0/type"> "value" </string>
@@ -255,12 +250,17 @@
 			<string> "cont" </string>
 			<bool> False </bool>
 			<string> "times" </string>
-			<real_array  len="1"> 				0 </real_array>
+			<real_array  len="6"> 				0, 0.25, 0.5, 0.75, 1, 1.25 </real_array>
 			<string> "transitions" </string>
-			<real_array  len="1"> 				1 </real_array>
+			<real_array  len="6"> 				1, 1, 1, 1, 1, 1 </real_array>
 			<string> "values" </string>
-			<array  len="1" shared="false">
-				<int> 26 </int>
+			<array  len="6" shared="false">
+				<int> 5 </int>
+				<int> 6 </int>
+				<int> 7 </int>
+				<int> 8 </int>
+				<int> 9 </int>
+				<int> 5 </int>
 			</array>
 		</dictionary>
 
@@ -272,7 +272,7 @@
 			<string> "pitch" </string>
 			<real> 1 </real>
 			<string> "sample" </string>
-			<resource  resource_type="Sample" path="res://sound_jump.wav">  </resource>
+			<resource  external="4">  </resource>
 		</dictionary>
 		<dictionary name="samples/shoot" shared="false">
 			<string> "db" </string>
@@ -280,7 +280,7 @@
 			<string> "pitch" </string>
 			<real> 1 </real>
 			<string> "sample" </string>
-			<resource  resource_type="Sample" path="res://sound_shoot.wav">  </resource>
+			<resource  external="5">  </resource>
 		</dictionary>
 		<dictionary name="samples/coin" shared="false">
 			<string> "db" </string>
@@ -288,7 +288,7 @@
 			<string> "pitch" </string>
 			<real> 1 </real>
 			<string> "sample" </string>
-			<resource  resource_type="Sample" path="res://sound_coin.wav">  </resource>
+			<resource  external="3">  </resource>
 		</dictionary>
 
 	</resource>
@@ -298,10 +298,12 @@
 			<int> 0 </int>
 			<string> "conns" </string>
 			<int_array  len="0"> 				 </int_array>
+			<string> "editable_instances" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "names" </string>
-			<string_array  len="142">
+			<string_array  len="144">
 				<string> "player" </string>
-				<string> "RigidBody2D" </string>
 				<string> "input/pickable" </string>
 				<string> "shapes/0/shape" </string>
 				<string> "shapes/0/transform" </string>
@@ -328,13 +330,13 @@
 				<string> "damp_override/angular" </string>
 				<string> "script/script" </string>
 				<string> "__meta__" </string>
+				<string> "RigidBody2D" </string>
 				<string> "sprite" </string>
-				<string> "Sprite" </string>
 				<string> "texture" </string>
 				<string> "vframes" </string>
 				<string> "hframes" </string>
+				<string> "Sprite" </string>
 				<string> "smoke" </string>
-				<string> "Particles2D" </string>
 				<string> "visibility/self_opacity" </string>
 				<string> "visibility/blend_mode" </string>
 				<string> "transform/pos" </string>
@@ -364,27 +366,27 @@
 				<string> "params/anim_initial_pos" </string>
 				<string> "randomness/spin_velocity" </string>
 				<string> "color/color_ramp" </string>
+				<string> "Particles2D" </string>
 				<string> "anim" </string>
-				<string> "AnimationPlayer" </string>
 				<string> "playback/process_mode" </string>
 				<string> "playback/default_blend_time" </string>
 				<string> "root/root" </string>
 				<string> "anims/idle" </string>
 				<string> "anims/jumping" </string>
-				<string> "anims/idle_weapon" </string>
-				<string> "anims/run" </string>
-				<string> "anims/run_weapon" </string>
 				<string> "anims/falling_weapon" </string>
+				<string> "anims/idle_weapon" </string>
 				<string> "anims/crouch" </string>
 				<string> "anims/falling" </string>
 				<string> "anims/standing_weapon_ready" </string>
 				<string> "anims/jumping_weapon" </string>
+				<string> "anims/run" </string>
+				<string> "anims/run_weapon" </string>
 				<string> "playback/active" </string>
 				<string> "playback/speed" </string>
 				<string> "blend_times" </string>
 				<string> "autoplay" </string>
+				<string> "AnimationPlayer" </string>
 				<string> "camera" </string>
-				<string> "Camera2D" </string>
 				<string> "anchor_mode" </string>
 				<string> "rotating" </string>
 				<string> "current" </string>
@@ -400,15 +402,16 @@
 				<string> "drag_margin/top" </string>
 				<string> "drag_margin/right" </string>
 				<string> "drag_margin/bottom" </string>
+				<string> "Camera2D" </string>
 				<string> "bullet_shoot" </string>
 				<string> "Position2D" </string>
 				<string> "CollisionShape2D" </string>
 				<string> "transform/scale" </string>
 				<string> "shape" </string>
 				<string> "trigger" </string>
+				<string> "_update_shape_index" </string>
 				<string> "sound" </string>
-				<string> "SamplePlayer" </string>
-				<string> "config/voices" </string>
+				<string> "config/polyphony" </string>
 				<string> "config/samples" </string>
 				<string> "default/volume_db" </string>
 				<string> "default/pitch_scale" </string>
@@ -422,33 +425,38 @@
 				<string> "default/reverb_room" </string>
 				<string> "default/reverb_send" </string>
 				<string> "default/chorus_send" </string>
+				<string> "SamplePlayer" </string>
 				<string> "CollisionPolygon2D" </string>
 				<string> "build_mode" </string>
 				<string> "polygon" </string>
+				<string> "shape_range" </string>
 				<string> "ui" </string>
-				<string> "CanvasLayer" </string>
 				<string> "layer" </string>
 				<string> "offset" </string>
 				<string> "rotation" </string>
 				<string> "scale" </string>
+				<string> "CanvasLayer" </string>
 				<string> "left" </string>
-				<string> "TouchScreenButton" </string>
 				<string> "normal" </string>
 				<string> "pressed" </string>
 				<string> "bitmask" </string>
 				<string> "passby_press" </string>
 				<string> "action" </string>
 				<string> "visibility_mode" </string>
+				<string> "TouchScreenButton" </string>
 				<string> "right" </string>
 				<string> "jump" </string>
 				<string> "fire" </string>
 			</string_array>
 			<string> "node_count" </string>
 			<int> 14 </int>
+			<string> "node_paths" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "nodes" </string>
-			<int_array  len="394"> 				-1, -1, 1, 0, -1, 26, 2, 0, 3, 1, 4, 2, 5, 0, 6, 3, 7, 4, 8, 0, 9, 5, 10, 5, 11, 6, 12, 7, 13, 8, 14, 8, 15, 9, 16, 10, 17, 11, 18, 12, 19, 0, 20, 0, 21, 10, 22, 13, 23, 8, 24, 14, 25, 14, 26, 15, 27, 16, 0, 0, 0, 29, 28, -1, 3, 30, 17, 31, 6, 32, 18, 0, 1, 0, 34, 33, -1, 29, 35, 19, 36, 5, 37, 20, 38, 21, 39, 22, 40, 23, 41, 23, 42, 0, 43, 0, 44, 24, 45, 25, 46, 8, 47, 26, 48, 27, 49, 9, 50, 8, 51, 8, 52, 28, 53, 8, 54, 8, 55, 8, 56, 8, 57, 29, 58, 29, 59, 8, 60, 9, 61, 8, 62, 29, 63, 30, 0, 0, 0, 65, 64, -1, 17, 66, 5, 67, 8, 68, 31, 69, 32, 70, 33, 71, 34, 72, 35, 73, 36, 74, 37, 75, 38, 76, 39, 77, 40, 78, 41, 79, 10, 80, 29, 81, 42, 82, 43, 0, 0, 0, 84, 83, -1, 15, 85, 5, 86, 0, 87, 10, 88, 8, 89, 44, 90, 11, 91, 11, 92, 45, 93, 45, 94, 10, 95, 10, 96, 46, 97, 46, 98, 46, 99, 46, 0, 0, 0, 101, 100, -1, 1, 37, 47, 0, 0, 0, 102, 102, -1, 4, 37, 48, 103, 49, 104, 1, 105, 0, 0, 0, 0, 107, 106, -1, 14, 108, 12, 109, 50, 110, 8, 111, 9, 112, 8, 113, 8, 114, 8, 115, 51, 116, 51, 117, 51, 118, 51, 119, 6, 120, 8, 121, 8, 0, 0, 0, 122, 122, -1, 3, 123, 11, 124, 52, 105, 0, 0, 0, 0, 126, 125, -1, 4, 127, 11, 128, 13, 129, 8, 130, 44, 0, 9, 0, 132, 131, -1, 8, 37, 53, 103, 54, 133, 55, 134, 56, 135, 56, 136, 10, 137, 57, 138, 5, 0, 9, 0, 132, 139, -1, 8, 37, 58, 103, 54, 133, 59, 134, 56, 135, 56, 136, 10, 137, 60, 138, 5, 0, 9, 0, 132, 140, -1, 8, 37, 61, 103, 54, 133, 62, 134, 56, 135, 56, 136, 0, 137, 63, 138, 5, 0, 9, 0, 132, 141, -1, 8, 37, 64, 103, 54, 133, 65, 134, 56, 135, 56, 136, 0, 137, 66, 138, 5, 0 </int_array>
+			<int_array  len="398"> 				-1, -1, 27, 0, -1, 26, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 4, 7, 0, 8, 5, 9, 5, 10, 6, 11, 7, 12, 8, 13, 8, 14, 9, 15, 10, 16, 11, 17, 12, 18, 0, 19, 0, 20, 10, 21, 13, 22, 8, 23, 14, 24, 14, 25, 15, 26, 16, 0, 0, 0, 32, 28, -1, 3, 29, 17, 30, 6, 31, 18, 0, 1, 0, 63, 33, -1, 29, 34, 19, 35, 5, 36, 20, 37, 21, 38, 22, 39, 23, 40, 23, 41, 0, 42, 0, 43, 24, 44, 25, 45, 8, 46, 26, 47, 27, 48, 9, 49, 8, 50, 8, 51, 28, 52, 8, 53, 8, 54, 8, 55, 8, 56, 29, 57, 29, 58, 8, 59, 9, 60, 8, 61, 29, 62, 30, 0, 0, 0, 82, 64, -1, 17, 65, 5, 66, 8, 67, 31, 68, 32, 69, 33, 70, 34, 71, 35, 72, 36, 73, 37, 74, 38, 75, 39, 76, 40, 77, 41, 78, 10, 79, 29, 80, 42, 81, 43, 0, 0, 0, 99, 83, -1, 15, 84, 5, 85, 0, 86, 10, 87, 8, 88, 44, 89, 11, 90, 11, 91, 45, 92, 45, 93, 10, 94, 10, 95, 46, 96, 46, 97, 46, 98, 46, 0, 0, 0, 101, 100, -1, 1, 36, 47, 0, 0, 0, 102, 102, -1, 5, 36, 48, 103, 49, 104, 1, 105, 0, 106, 50, 0, 0, 0, 122, 107, -1, 14, 108, 5, 109, 51, 110, 8, 111, 9, 112, 8, 113, 8, 114, 8, 115, 11, 116, 8, 117, 8, 118, 8, 119, 6, 120, 8, 121, 8, 0, 0, 0, 123, 123, -1, 4, 124, 11, 125, 52, 126, 53, 105, 0, 0, 0, 0, 132, 127, -1, 4, 128, 11, 129, 13, 130, 8, 131, 44, 0, 9, 0, 140, 133, -1, 8, 36, 54, 103, 55, 134, 56, 135, 57, 136, 57, 137, 10, 138, 58, 139, 5, 0, 9, 0, 140, 141, -1, 8, 36, 59, 103, 55, 134, 60, 135, 57, 136, 57, 137, 10, 138, 61, 139, 5, 0, 9, 0, 140, 142, -1, 8, 36, 62, 103, 55, 134, 63, 135, 57, 136, 57, 137, 0, 138, 64, 139, 5, 0, 9, 0, 140, 143, -1, 8, 36, 65, 103, 55, 134, 66, 135, 57, 136, 57, 137, 0, 138, 67, 139, 5, 0 </int_array>
 			<string> "variants" </string>
-			<array  len="67" shared="false">
+			<array  len="68" shared="false">
 				<bool> False </bool>
 				<resource  resource_type="Shape2D" path="local://1">  </resource>
 				<matrix32> 1, -0, 0, 1.76469, 0.291992, -12.1587 </matrix32>
@@ -464,7 +472,7 @@
 				<int> 3 </int>
 				<vector2> 0, 0 </vector2>
 				<real> -1 </real>
-				<resource  resource_type="Script" path="res://player.gd">  </resource>
+				<resource  external="0">  </resource>
 				<dictionary  shared="false">
 					<string> "__editor_plugin_screen__" </string>
 					<string> "2D" </string>
@@ -587,6 +595,11 @@
 							<string> "znear" </string>
 							<real> 0.1 </real>
 						</dictionary>
+						<string> "Anim" </string>
+						<dictionary  shared="false">
+							<string> "visible" </string>
+							<bool> False </bool>
+						</dictionary>
 					</dictionary>
 					<string> "__editor_run_settings__" </string>
 					<dictionary  shared="false">
@@ -596,7 +609,7 @@
 						<int> 0 </int>
 					</dictionary>
 				</dictionary>
-				<resource  resource_type="Texture" path="res://robot_demo.png">  </resource>
+				<resource  external="1">  </resource>
 				<int> 16 </int>
 				<real> 0.363636 </real>
 				<vector2> 20.7312, 3.21187 </vector2>
@@ -604,7 +617,7 @@
 				<int> 4 </int>
 				<real> 0.3 </real>
 				<real> 0.1 </real>
-				<resource  resource_type="Texture" path="res://bullet.png">  </resource>
+				<resource  external="2">  </resource>
 				<real> 180 </real>
 				<real> 20 </real>
 				<real> 9.8 </real>
@@ -613,14 +626,14 @@
 				<node_path> ".." </node_path>
 				<resource  resource_type="Animation" path="local://3">  </resource>
 				<resource  resource_type="Animation" path="local://4">  </resource>
-				<resource  resource_type="Animation" path="local://5">  </resource>
-				<resource  resource_type="Animation" path="local://6">  </resource>
-				<resource  resource_type="Animation" path="local://11">  </resource>
 				<resource  resource_type="Animation" path="local://10">  </resource>
+				<resource  resource_type="Animation" path="local://5">  </resource>
 				<resource  resource_type="Animation" path="local://7">  </resource>
 				<resource  resource_type="Animation" path="local://8">  </resource>
 				<resource  resource_type="Animation" path="local://9">  </resource>
 				<resource  resource_type="Animation" path="local://12">  </resource>
+				<resource  resource_type="Animation" path="local://6">  </resource>
+				<resource  resource_type="Animation" path="local://11">  </resource>
 				<array  len="0" shared="false">
 				</array>
 				<string> "" </string>
@@ -630,25 +643,26 @@
 				<vector2> 31.2428, 4.08784 </vector2>
 				<vector2> 0.291992, -12.1587 </vector2>
 				<vector2> 1, 1.76469 </vector2>
+				<int> -1 </int>
 				<resource  resource_type="SampleLibrary" path="local://13">  </resource>
-				<nil>  </nil>
 				<vector2_array  len="3"> 					-0.138023, 16.5036, -19.902, -24.8691, 19.3625, -24.6056 </vector2_array>
+				<vector2> -1, -1 </vector2>
 				<vector2> 27.7593, 360.87 </vector2>
 				<vector2> 1.49157, 1.46265 </vector2>
-				<resource  resource_type="Texture" path="res://osb_left.png">  </resource>
+				<resource  external="6">  </resource>
 				<resource name=""></resource>				<string> "move_left" </string>
 				<vector2> 121.542, 361.415 </vector2>
-				<resource  resource_type="Texture" path="res://osb_right.png">  </resource>
+				<resource  external="7">  </resource>
 				<string> "move_right" </string>
 				<vector2> 666.224, 359.02 </vector2>
-				<resource  resource_type="Texture" path="res://osb_jump.png">  </resource>
+				<resource  external="8">  </resource>
 				<string> "jump" </string>
 				<vector2> 668.073, 262.788 </vector2>
-				<resource  resource_type="Texture" path="res://osb_fire.png">  </resource>
+				<resource  external="9">  </resource>
 				<string> "shoot" </string>
 			</array>
 			<string> "version" </string>
-			<int> 1 </int>
+			<int> 2 </int>
 		</dictionary>
 
 	</main_resource>

+ 120 - 87
demos/2d/platformer/seesaw.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="4" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
-	<ext_resource path="res://plank.*" type="Texture"></ext_resource>
-	<ext_resource path="res://plankpin.*" type="Texture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="4" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+	<ext_resource path="res://plank.png" type="Texture" index="0"></ext_resource>
+	<ext_resource path="res://plankpin.png" type="Texture" index="1"></ext_resource>
 	<resource type="RectangleShape2D" path="local://1">
 		<real name="custom_solver_bias"> 0 </real>
 		<vector2 name="extents"> 128, 8 </vector2>
@@ -9,159 +9,192 @@
 	</resource>
 	<main_resource>
 		<dictionary name="_bundled" shared="false">
+			<string> "conn_count" </string>
+			<int> 0 </int>
+			<string> "conns" </string>
+			<int_array  len="0"> 				 </int_array>
+			<string> "editable_instances" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "names" </string>
-			<string_array  len="49">
+			<string_array  len="40">
 				<string> "seesaw" </string>
-				<string> "Node2D" </string>
-				<string> "visibility/visible" </string>
-				<string> "visibility/opacity" </string>
-				<string> "visibility/self_opacity" </string>
-				<string> "visibility/on_top" </string>
-				<string> "transform/pos" </string>
-				<string> "transform/rot" </string>
-				<string> "transform/scale" </string>
 				<string> "__meta__" </string>
+				<string> "Node2D" </string>
 				<string> "plank" </string>
-				<string> "RigidBody2D" </string>
-				<string> "shape_count" </string>
+				<string> "input/pickable" </string>
 				<string> "shapes/0/shape" </string>
 				<string> "shapes/0/transform" </string>
 				<string> "shapes/0/trigger" </string>
+				<string> "collision/layers" </string>
+				<string> "collision/mask" </string>
 				<string> "mode" </string>
 				<string> "mass" </string>
 				<string> "friction" </string>
 				<string> "bounce" </string>
+				<string> "gravity_scale" </string>
 				<string> "custom_integrator" </string>
 				<string> "continuous_cd" </string>
 				<string> "contacts_reported" </string>
 				<string> "contact_monitor" </string>
-				<string> "active" </string>
+				<string> "sleeping" </string>
 				<string> "can_sleep" </string>
 				<string> "velocity/linear" </string>
 				<string> "velocity/angular" </string>
+				<string> "damp_override/linear" </string>
+				<string> "damp_override/angular" </string>
+				<string> "RigidBody2D" </string>
 				<string> "sprite" </string>
-				<string> "Sprite" </string>
 				<string> "texture" </string>
-				<string> "centered" </string>
-				<string> "offset" </string>
-				<string> "flip_h" </string>
-				<string> "flip_v" </string>
-				<string> "vframes" </string>
-				<string> "hframes" </string>
-				<string> "frame" </string>
-				<string> "modulate" </string>
-				<string> "region" </string>
-				<string> "region_rect" </string>
+				<string> "Sprite" </string>
 				<string> "CollisionShape2D" </string>
 				<string> "shape" </string>
 				<string> "trigger" </string>
+				<string> "_update_shape_index" </string>
 				<string> "pin" </string>
-				<string> "PinJoint2D" </string>
 				<string> "node_a" </string>
 				<string> "node_b" </string>
 				<string> "bias/bias" </string>
+				<string> "softness" </string>
+				<string> "PinJoint2D" </string>
+				<string> "transform/pos" </string>
 			</string_array>
-			<string> "version" </string>
-			<int> 1 </int>
-			<string> "conn_count" </string>
-			<int> 0 </int>
 			<string> "node_count" </string>
 			<int> 6 </int>
+			<string> "node_paths" </string>
+			<array  len="0" shared="false">
+			</array>
+			<string> "nodes" </string>
+			<int_array  len="106"> 				-1, -1, 2, 0, -1, 1, 1, 0, 0, 0, 0, 25, 3, -1, 21, 4, 1, 5, 2, 6, 3, 7, 1, 8, 4, 9, 4, 10, 5, 11, 6, 12, 7, 13, 8, 14, 7, 15, 1, 16, 5, 17, 5, 18, 1, 19, 1, 20, 9, 21, 10, 22, 8, 23, 11, 24, 11, 0, 1, 0, 28, 26, -1, 1, 27, 12, 0, 1, 0, 29, 29, -1, 3, 30, 2, 31, 1, 32, 13, 0, 0, 0, 38, 33, -1, 4, 34, 14, 35, 15, 36, 8, 37, 8, 0, 0, 0, 28, 28, -1, 2, 39, 16, 27, 17, 0 </int_array>
 			<string> "variants" </string>
-			<array  len="19" shared="false">
-				<bool> True </bool>
-				<real> 1 </real>
-				<vector2> 0, 0 </vector2>
-				<real> 0 </real>
-				<vector2> 1, 1 </vector2>
+			<array  len="18" shared="false">
 				<dictionary  shared="false">
+					<string> "__editor_plugin_screen__" </string>
+					<string> "2D" </string>
 					<string> "__editor_plugin_states__" </string>
 					<dictionary  shared="false">
 						<string> "2D" </string>
 						<dictionary  shared="false">
-							<string> "pixel_snap" </string>
+							<string> "ofs" </string>
+							<vector2> -116.979, -109.897 </vector2>
+							<string> "snap_grid" </string>
+							<bool> False </bool>
+							<string> "snap_offset" </string>
+							<vector2> 0, 0 </vector2>
+							<string> "snap_pixel" </string>
+							<bool> False </bool>
+							<string> "snap_relative" </string>
+							<bool> False </bool>
+							<string> "snap_rotation" </string>
 							<bool> False </bool>
+							<string> "snap_rotation_offset" </string>
+							<real> 0 </real>
+							<string> "snap_rotation_step" </string>
+							<real> 0.261799 </real>
+							<string> "snap_show_grid" </string>
+							<bool> False </bool>
+							<string> "snap_step" </string>
+							<vector2> 10, 10 </vector2>
 							<string> "zoom" </string>
 							<real> 2.050547 </real>
-							<string> "ofs" </string>
-							<vector2> -116.979, -109.897 </vector2>
 						</dictionary>
 						<string> "3D" </string>
 						<dictionary  shared="false">
-							<string> "zfar" </string>
-							<real> 500 </real>
+							<string> "ambient_light_color" </string>
+							<color> 0.15, 0.15, 0.15, 1 </color>
+							<string> "default_light" </string>
+							<bool> True </bool>
+							<string> "default_srgb" </string>
+							<bool> False </bool>
+							<string> "deflight_rot_x" </string>
+							<real> 0.942478 </real>
+							<string> "deflight_rot_y" </string>
+							<real> 0.628319 </real>
 							<string> "fov" </string>
-							<real> 400 </real>
+							<real> 179 </real>
+							<string> "show_grid" </string>
+							<bool> True </bool>
+							<string> "show_origin" </string>
+							<bool> True </bool>
+							<string> "viewport_mode" </string>
+							<int> 1 </int>
 							<string> "viewports" </string>
 							<array  len="4" shared="false">
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> True </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 							</array>
-							<string> "viewport_mode" </string>
-							<int> 1 </int>
-							<string> "default_light" </string>
-							<bool> True </bool>
-							<string> "show_grid" </string>
-							<bool> True </bool>
-							<string> "show_origin" </string>
-							<bool> True </bool>
+							<string> "zfar" </string>
+							<real> 500 </real>
 							<string> "znear" </string>
 							<real> 0.1 </real>
 						</dictionary>
+						<string> "Anim" </string>
+						<dictionary  shared="false">
+							<string> "visible" </string>
+							<bool> False </bool>
+						</dictionary>
 					</dictionary>
 					<string> "__editor_run_settings__" </string>
 					<dictionary  shared="false">
@@ -170,27 +203,27 @@
 						<string> "run_mode" </string>
 						<int> 0 </int>
 					</dictionary>
-					<string> "__editor_plugin_screen__" </string>
-					<string> "2D" </string>
 				</dictionary>
-				<int> 1 </int>
+				<bool> False </bool>
 				<resource  resource_type="Shape2D" path="local://1">  </resource>
 				<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
-				<bool> False </bool>
+				<int> 1 </int>
 				<int> 0 </int>
 				<real> 5.102041 </real>
-				<resource  resource_type="Texture" path="res://plank.*">  </resource>
-				<color> 1, 1, 1, 1 </color>
-				<rect2> 0, 0, 0, 0 </rect2>
+				<real> 1 </real>
+				<real> 0 </real>
+				<bool> True </bool>
+				<vector2> 0, 0 </vector2>
+				<real> -1 </real>
+				<resource  external="0">  </resource>
+				<int> -1 </int>
 				<node_path> "../plank" </node_path>
 				<node_path> "" </node_path>
 				<vector2> -0.290825, 20.2425 </vector2>
-				<resource  resource_type="Texture" path="res://plankpin.*">  </resource>
+				<resource  external="1">  </resource>
 			</array>
-			<string> "nodes" </string>
-			<int_array  len="214"> 				-1, -1, 1, 0, -1, 8, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 0, 0, 0, 11, 10, -1, 23, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 12, 6, 13, 7, 14, 8, 15, 9, 16, 10, 17, 11, 18, 1, 19, 3, 20, 9, 21, 9, 22, 10, 23, 9, 24, 0, 25, 0, 26, 2, 27, 3, 0, 1, 0, 29, 28, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 30, 12, 31, 0, 32, 2, 33, 9, 34, 9, 35, 6, 36, 6, 37, 10, 38, 13, 39, 9, 40, 14, 0, 1, 0, 41, 41, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 42, 7, 43, 9, 0, 0, 0, 45, 44, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 46, 15, 47, 16, 48, 3, 0, 0, 0, 29, 29, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 17, 7, 3, 8, 4, 30, 18, 31, 0, 32, 2, 33, 9, 34, 9, 35, 6, 36, 6, 37, 10, 38, 13, 39, 9, 40, 14, 0 </int_array>
-			<string> "conns" </string>
-			<int_array  len="0"> 				 </int_array>
+			<string> "version" </string>
+			<int> 2 </int>
 		</dictionary>
 
 	</main_resource>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 28 - 27
demos/2d/platformer/stage.xml


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 24 - 45
demos/2d/platformer/tileset_edit.xml


+ 38 - 44
demos/2d/pong/pong.gd

@@ -1,73 +1,67 @@
 
 extends Node2D
 
-#member variables here, example:
-#var a=2
-#var b="textvar"
+# Member variables
 const INITIAL_BALL_SPEED = 80
 var ball_speed = INITIAL_BALL_SPEED
-var screen_size = Vector2(640,400)
-#default ball direction
-var direction = Vector2(-1,0)
-var pad_size = Vector2(8,32)
+var screen_size = Vector2(640, 400)
+
+# Default ball direction
+var direction = Vector2(-1, 0)
+var pad_size = Vector2(8, 32)
 const PAD_SPEED = 150
 
 
 func _process(delta):
-
-
-	#get ball position and pad rectangles
+	# Get ball position and pad rectangles
 	var ball_pos = get_node("ball").get_pos()
-	var left_rect = Rect2( get_node("left").get_pos() - pad_size*0.5, pad_size )
-	var right_rect = Rect2( get_node("right").get_pos() - pad_size*0.5, pad_size )
+	var left_rect = Rect2(get_node("left").get_pos() - pad_size*0.5, pad_size)
+	var right_rect = Rect2(get_node("right").get_pos() - pad_size*0.5, pad_size)
 	
-	#integrate new ball postion
-	ball_pos+=direction*ball_speed*delta
+	# Integrate new ball postion
+	ball_pos += direction*ball_speed*delta
 	
-	#flip when touching roof or floor
-	if ( (ball_pos.y<0 and direction.y <0) or (ball_pos.y>screen_size.y and direction.y>0)):
+	# Flip when touching roof or floor
+	if ((ball_pos.y < 0 and direction.y < 0) or (ball_pos.y > screen_size.y and direction.y > 0)):
 		direction.y = -direction.y
-		
-	#flip, change direction and increase speed when touching pads	
-	if ( (left_rect.has_point(ball_pos) and direction.x < 0) or (right_rect.has_point(ball_pos) and direction.x > 0)):
-		direction.x=-direction.x
-		ball_speed*=1.1
-		direction.y=randf()*2.0-1
+	
+	# Flip, change direction and increase speed when touching pads
+	if ((left_rect.has_point(ball_pos) and direction.x < 0) or (right_rect.has_point(ball_pos) and direction.x > 0)):
+		direction.x = -direction.x
+		ball_speed *= 1.1
+		direction.y = randf()*2.0 - 1
 		direction = direction.normalized()
-
-	#check gameover
-	if (ball_pos.x<0 or ball_pos.x>screen_size.x):
-		ball_pos=screen_size*0.5
-		ball_speed=INITIAL_BALL_SPEED
-		direction=Vector2(-1,0)
-			
-						
+	
+	# Check gameover
+	if (ball_pos.x < 0 or ball_pos.x > screen_size.x):
+		ball_pos = screen_size*0.5
+		ball_speed = INITIAL_BALL_SPEED
+		direction = Vector2(-1, 0)
+	
 	get_node("ball").set_pos(ball_pos)
-
-	#move left pad
+	
+	# Move left pad
 	var left_pos = get_node("left").get_pos()
 	
 	if (left_pos.y > 0 and Input.is_action_pressed("left_move_up")):
-		left_pos.y+=-PAD_SPEED*delta
+		left_pos.y += -PAD_SPEED*delta
 	if (left_pos.y < screen_size.y and Input.is_action_pressed("left_move_down")):
-		left_pos.y+=PAD_SPEED*delta
-		
+		left_pos.y += PAD_SPEED*delta
+	
 	get_node("left").set_pos(left_pos)
-		
-	#move right pad	
+	
+	# Move right pad
 	var right_pos = get_node("right").get_pos()
 	
 	if (right_pos.y > 0 and Input.is_action_pressed("right_move_up")):
-		right_pos.y+=-PAD_SPEED*delta
+		right_pos.y += -PAD_SPEED*delta
 	if (right_pos.y < screen_size.y and Input.is_action_pressed("right_move_down")):
-		right_pos.y+=PAD_SPEED*delta
-		
-	get_node("right").set_pos(right_pos)
+		right_pos.y += PAD_SPEED*delta
 	
-	 
+	get_node("right").set_pos(right_pos)
+
 
 func _ready():
-	screen_size = get_viewport_rect().size #get actual size
+	screen_size = get_viewport_rect().size # Get actual size
 	pad_size = get_node("left").get_texture().get_size()
 	set_process(true)
-

+ 107 - 99
demos/2d/pong/pong.xml

@@ -1,153 +1,170 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="6" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
-	<ext_resource path="res://pong.*" type="GDScript"></ext_resource>
-	<ext_resource path="res://separator.*" type="ImageTexture"></ext_resource>
-	<ext_resource path="res://left_pallete.*" type="ImageTexture"></ext_resource>
-	<ext_resource path="res://right_pallete.*" type="ImageTexture"></ext_resource>
-	<ext_resource path="res://ball.*" type="ImageTexture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="6" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+	<ext_resource path="res://pong.gd" type="Script" index="0"></ext_resource>
+	<ext_resource path="res://left_pallete.png" type="Texture" index="1"></ext_resource>
+	<ext_resource path="res://separator.png" type="Texture" index="3"></ext_resource>
+	<ext_resource path="res://right_pallete.png" type="Texture" index="2"></ext_resource>
+	<ext_resource path="res://ball.png" type="Texture" index="4"></ext_resource>
 	<main_resource>
 		<dictionary name="_bundled" shared="false">
+			<string> "conn_count" </string>
+			<int> 0 </int>
+			<string> "conns" </string>
+			<int_array  len="0"> 				 </int_array>
+			<string> "editable_instances" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "names" </string>
-			<string_array  len="27">
+			<string_array  len="11">
 				<string> "game" </string>
-				<string> "Node2D" </string>
-				<string> "visibility/visible" </string>
-				<string> "visibility/opacity" </string>
-				<string> "visibility/self_opacity" </string>
-				<string> "visibility/on_top" </string>
-				<string> "transform/pos" </string>
-				<string> "transform/rot" </string>
-				<string> "transform/scale" </string>
 				<string> "script/script" </string>
 				<string> "__meta__" </string>
+				<string> "Node2D" </string>
 				<string> "left" </string>
-				<string> "Sprite" </string>
+				<string> "transform/pos" </string>
 				<string> "texture" </string>
-				<string> "centered" </string>
-				<string> "offset" </string>
-				<string> "flip_h" </string>
-				<string> "flip_v" </string>
-				<string> "vframes" </string>
-				<string> "hframes" </string>
-				<string> "frame" </string>
-				<string> "modulate" </string>
-				<string> "region" </string>
-				<string> "region_rect" </string>
+				<string> "Sprite" </string>
 				<string> "right" </string>
 				<string> "separator" </string>
 				<string> "ball" </string>
 			</string_array>
-			<string> "version" </string>
-			<int> 1 </int>
-			<string> "conn_count" </string>
-			<int> 0 </int>
 			<string> "node_count" </string>
 			<int> 5 </int>
+			<string> "node_paths" </string>
+			<array  len="0" shared="false">
+			</array>
+			<string> "nodes" </string>
+			<int_array  len="55"> 				-1, -1, 3, 0, -1, 2, 1, 0, 2, 1, 0, 0, 0, 7, 4, -1, 2, 5, 2, 6, 3, 0, 0, 0, 7, 8, -1, 2, 5, 4, 6, 5, 0, 0, 0, 7, 9, -1, 2, 5, 6, 6, 7, 0, 0, 0, 7, 10, -1, 2, 5, 8, 6, 9, 0 </int_array>
 			<string> "variants" </string>
-			<array  len="20" shared="false">
-				<bool> True </bool>
-				<real> 1 </real>
-				<vector2> 0, 0 </vector2>
-				<real> 0 </real>
-				<vector2> 1, 1 </vector2>
-				<resource  resource_type="GDScript" path="res://pong.*">  </resource>
+			<array  len="10" shared="false">
+				<resource  external="0">  </resource>
 				<dictionary  shared="false">
+					<string> "__editor_plugin_screen__" </string>
+					<string> "Script" </string>
 					<string> "__editor_plugin_states__" </string>
 					<dictionary  shared="false">
-						<string> "Script" </string>
-						<dictionary  shared="false">
-							<string> "current" </string>
-							<int> 0 </int>
-							<string> "sources" </string>
-							<array  len="1" shared="false">
-								<string> "res://pong.gd" </string>
-							</array>
-						</dictionary>
 						<string> "2D" </string>
 						<dictionary  shared="false">
-							<string> "pixel_snap" </string>
-							<bool> True </bool>
-							<string> "zoom" </string>
-							<real> 1.108033 </real>
 							<string> "ofs" </string>
 							<vector2> -54.59, -36.0052 </vector2>
+							<string> "snap_grid" </string>
+							<bool> False </bool>
+							<string> "snap_offset" </string>
+							<vector2> 0, 0 </vector2>
+							<string> "snap_pixel" </string>
+							<bool> False </bool>
+							<string> "snap_relative" </string>
+							<bool> False </bool>
+							<string> "snap_rotation" </string>
+							<bool> False </bool>
+							<string> "snap_rotation_offset" </string>
+							<real> 0 </real>
+							<string> "snap_rotation_step" </string>
+							<real> 0.261799 </real>
+							<string> "snap_show_grid" </string>
+							<bool> False </bool>
+							<string> "snap_step" </string>
+							<vector2> 10, 10 </vector2>
+							<string> "zoom" </string>
+							<real> 1.108033 </real>
 						</dictionary>
 						<string> "3D" </string>
 						<dictionary  shared="false">
-							<string> "zfar" </string>
-							<real> 500 </real>
+							<string> "ambient_light_color" </string>
+							<color> 0.15, 0.15, 0.15, 1 </color>
+							<string> "default_light" </string>
+							<bool> True </bool>
+							<string> "default_srgb" </string>
+							<bool> False </bool>
+							<string> "deflight_rot_x" </string>
+							<real> 0.942478 </real>
+							<string> "deflight_rot_y" </string>
+							<real> 0.628319 </real>
 							<string> "fov" </string>
 							<real> 45 </real>
+							<string> "show_grid" </string>
+							<bool> True </bool>
+							<string> "show_origin" </string>
+							<bool> True </bool>
+							<string> "viewport_mode" </string>
+							<int> 1 </int>
 							<string> "viewports" </string>
 							<array  len="4" shared="false">
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> True </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 							</array>
-							<string> "viewport_mode" </string>
-							<int> 1 </int>
-							<string> "default_light" </string>
-							<bool> True </bool>
-							<string> "show_grid" </string>
-							<bool> True </bool>
-							<string> "show_origin" </string>
-							<bool> True </bool>
+							<string> "zfar" </string>
+							<real> 500 </real>
 							<string> "znear" </string>
 							<real> 0.1 </real>
 						</dictionary>
+						<string> "Anim" </string>
+						<dictionary  shared="false">
+							<string> "visible" </string>
+							<bool> False </bool>
+						</dictionary>
 					</dictionary>
 					<string> "__editor_run_settings__" </string>
 					<dictionary  shared="false">
@@ -156,27 +173,18 @@
 						<string> "run_mode" </string>
 						<int> 0 </int>
 					</dictionary>
-					<string> "__editor_plugin_screen__" </string>
-					<string> "Script" </string>
 				</dictionary>
 				<vector2> 67.6875, 183.208 </vector2>
-				<resource  resource_type="ImageTexture" path="res://left_pallete.*">  </resource>
-				<bool> False </bool>
-				<int> 1 </int>
-				<int> 0 </int>
-				<color> 1, 1, 1, 1 </color>
-				<rect2> 0, 0, 0, 0 </rect2>
+				<resource  external="1">  </resource>
 				<vector2> 577, 187 </vector2>
-				<resource  resource_type="ImageTexture" path="res://right_pallete.*">  </resource>
+				<resource  external="2">  </resource>
 				<vector2> 320, 200 </vector2>
-				<resource  resource_type="ImageTexture" path="res://separator.*">  </resource>
+				<resource  external="3">  </resource>
 				<vector2> 320.283, 188 </vector2>
-				<resource  resource_type="ImageTexture" path="res://ball.*">  </resource>
+				<resource  external="4">  </resource>
 			</array>
-			<string> "nodes" </string>
-			<int_array  len="197"> 				-1, -1, 1, 0, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 0, 0, 0, 12, 11, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 7, 7, 3, 8, 4, 13, 8, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0, 0, 0, 12, 24, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 14, 7, 3, 8, 4, 13, 15, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0, 0, 0, 12, 25, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 16, 7, 3, 8, 4, 13, 17, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0, 0, 0, 12, 26, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 18, 7, 3, 8, 4, 13, 19, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0 </int_array>
-			<string> "conns" </string>
-			<int_array  len="0"> 				 </int_array>
+			<string> "version" </string>
+			<int> 2 </int>
 		</dictionary>
 
 	</main_resource>

+ 117 - 93
demos/2d/rubegoldberg/ball.xml

@@ -1,171 +1,200 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="3" version="0.99" version_name="Godot Engine v0.99.3656-pre-beta">
-	<ext_resource path="res://art/bowling_ball.*" type="ImageTexture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+	<ext_resource path="res://art/bowling_ball.png" type="Texture" index="0"></ext_resource>
 	<resource type="CircleShape2D" path="local://1">
-		<string name="resource/name"> "" </string>
 		<real name="custom_solver_bias"> 0 </real>
 		<real name="radius"> 32 </real>
-		<resource name="script/script"></resource>
+
 	</resource>
 	<main_resource>
-		<string name="resource/name"> "" </string>
 		<dictionary name="_bundled" shared="false">
+			<string> "conn_count" </string>
+			<int> 0 </int>
+			<string> "conns" </string>
+			<int_array  len="0"> 				 </int_array>
+			<string> "editable_instances" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "names" </string>
-			<string_array  len="48">
+			<string_array  len="30">
 				<string> "Ball" </string>
-				<string> "RigidBody2D" </string>
-				<string> "process/process" </string>
-				<string> "process/fixed_process" </string>
-				<string> "process/input" </string>
-				<string> "process/unhandled_input" </string>
-				<string> "process/pause_mode" </string>
-				<string> "visibility/visible" </string>
-				<string> "visibility/opacity" </string>
-				<string> "visibility/self_opacity" </string>
-				<string> "visibility/on_top" </string>
-				<string> "visibility/blend_mode" </string>
-				<string> "transform/pos" </string>
-				<string> "transform/rot" </string>
-				<string> "transform/scale" </string>
-				<string> "shape_count" </string>
+				<string> "input/pickable" </string>
 				<string> "shapes/0/shape" </string>
 				<string> "shapes/0/transform" </string>
 				<string> "shapes/0/trigger" </string>
+				<string> "collision/layers" </string>
+				<string> "collision/mask" </string>
 				<string> "mode" </string>
 				<string> "mass" </string>
 				<string> "friction" </string>
 				<string> "bounce" </string>
+				<string> "gravity_scale" </string>
 				<string> "custom_integrator" </string>
 				<string> "continuous_cd" </string>
 				<string> "contacts_reported" </string>
 				<string> "contact_monitor" </string>
-				<string> "active" </string>
+				<string> "sleeping" </string>
 				<string> "can_sleep" </string>
 				<string> "velocity/linear" </string>
 				<string> "velocity/angular" </string>
-				<string> "script/script" </string>
+				<string> "damp_override/linear" </string>
+				<string> "damp_override/angular" </string>
 				<string> "__meta__" </string>
+				<string> "RigidBody2D" </string>
 				<string> "Sprite" </string>
 				<string> "texture" </string>
-				<string> "centered" </string>
-				<string> "offset" </string>
-				<string> "flip_h" </string>
-				<string> "flip_v" </string>
-				<string> "vframes" </string>
-				<string> "hframes" </string>
-				<string> "frame" </string>
-				<string> "modulate" </string>
-				<string> "region" </string>
-				<string> "region_rect" </string>
 				<string> "CollisionShape2D" </string>
 				<string> "shape" </string>
 				<string> "trigger" </string>
+				<string> "_update_shape_index" </string>
 			</string_array>
-			<string> "version" </string>
-			<int> 1 </int>
-			<string> "conn_count" </string>
-			<int> 0 </int>
 			<string> "node_count" </string>
 			<int> 3 </int>
+			<string> "node_paths" </string>
+			<array  len="0" shared="false">
+			</array>
+			<string> "nodes" </string>
+			<int_array  len="73"> 				-1, -1, 23, 0, -1, 22, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 6, 12, 0, 13, 4, 14, 4, 15, 0, 16, 0, 17, 8, 18, 9, 19, 7, 20, 10, 21, 10, 22, 11, 0, 0, 0, 24, 24, -1, 1, 25, 12, 0, 0, 0, 26, 26, -1, 3, 27, 1, 28, 0, 29, 13, 0 </int_array>
 			<string> "variants" </string>
-			<array  len="16" shared="true">
+			<array  len="14" shared="false">
 				<bool> False </bool>
+				<resource  resource_type="Shape2D" path="local://1">  </resource>
+				<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+				<int> 1 </int>
 				<int> 0 </int>
-				<bool> True </bool>
+				<real> 3 </real>
 				<real> 1 </real>
-				<vector2> 0, 0 </vector2>
 				<real> 0 </real>
-				<vector2> 1, 1 </vector2>
-				<int> 1 </int>
-				<resource  resource_type="CircleShape2D" path="local://1">  </resource>
-				<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
-				<real> 3 </real>
-				<resource name=""></resource>				<dictionary  shared="false">
+				<bool> True </bool>
+				<vector2> 0, 0 </vector2>
+				<real> -1 </real>
+				<dictionary  shared="false">
+					<string> "__editor_plugin_screen__" </string>
+					<string> "2D" </string>
 					<string> "__editor_plugin_states__" </string>
 					<dictionary  shared="false">
 						<string> "2D" </string>
 						<dictionary  shared="false">
-							<string> "zoom" </string>
-							<real> 1.50734 </real>
 							<string> "ofs" </string>
 							<vector2> -80.5995, -149.825 </vector2>
+							<string> "snap_grid" </string>
+							<bool> False </bool>
+							<string> "snap_offset" </string>
+							<vector2> 0, 0 </vector2>
+							<string> "snap_pixel" </string>
+							<bool> False </bool>
+							<string> "snap_relative" </string>
+							<bool> False </bool>
+							<string> "snap_rotation" </string>
+							<bool> False </bool>
+							<string> "snap_rotation_offset" </string>
+							<real> 0 </real>
+							<string> "snap_rotation_step" </string>
+							<real> 0.261799 </real>
+							<string> "snap_show_grid" </string>
+							<bool> False </bool>
+							<string> "snap_step" </string>
+							<vector2> 10, 10 </vector2>
+							<string> "zoom" </string>
+							<real> 1.50734 </real>
 						</dictionary>
 						<string> "3D" </string>
 						<dictionary  shared="false">
-							<string> "zfar" </string>
-							<real> 500 </real>
+							<string> "ambient_light_color" </string>
+							<color> 0.15, 0.15, 0.15, 1 </color>
+							<string> "default_light" </string>
+							<bool> True </bool>
+							<string> "default_srgb" </string>
+							<bool> False </bool>
+							<string> "deflight_rot_x" </string>
+							<real> 0.942478 </real>
+							<string> "deflight_rot_y" </string>
+							<real> 0.628319 </real>
 							<string> "fov" </string>
 							<real> 45 </real>
+							<string> "show_grid" </string>
+							<bool> True </bool>
+							<string> "show_origin" </string>
+							<bool> True </bool>
+							<string> "viewport_mode" </string>
+							<int> 1 </int>
 							<string> "viewports" </string>
-							<array  len="4" shared="true">
+							<array  len="4" shared="false">
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> True </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 							</array>
-							<string> "viewport_mode" </string>
-							<int> 1 </int>
-							<string> "default_light" </string>
-							<bool> True </bool>
-							<string> "show_grid" </string>
-							<bool> True </bool>
-							<string> "show_origin" </string>
-							<bool> True </bool>
+							<string> "zfar" </string>
+							<real> 500 </real>
 							<string> "znear" </string>
 							<real> 0.1 </real>
 						</dictionary>
+						<string> "Anim" </string>
+						<dictionary  shared="false">
+							<string> "visible" </string>
+							<bool> False </bool>
+						</dictionary>
 					</dictionary>
 					<string> "__editor_run_settings__" </string>
 					<dictionary  shared="false">
@@ -174,18 +203,13 @@
 						<string> "run_mode" </string>
 						<int> 0 </int>
 					</dictionary>
-					<string> "__editor_plugin_screen__" </string>
-					<string> "Script" </string>
 				</dictionary>
-				<resource  resource_type="ImageTexture" path="res://art/bowling_ball.*">  </resource>
-				<color> 1, 1, 1, 1 </color>
-				<rect2> 0, 0, 0, 0 </rect2>
+				<resource  external="0">  </resource>
+				<int> -1 </int>
 			</array>
-			<string> "nodes" </string>
-			<int_array  len="165"> 				-1, -1, 1, 0, -1, 31, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 3, 9, 3, 10, 2, 11, 1, 12, 4, 13, 5, 14, 6, 15, 7, 16, 8, 17, 9, 18, 0, 19, 1, 20, 10, 21, 3, 22, 5, 23, 0, 24, 0, 25, 1, 26, 0, 27, 2, 28, 2, 29, 4, 30, 5, 31, 11, 32, 12, 0, 0, 0, 33, 33, -1, 25, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 3, 9, 3, 10, 2, 11, 1, 12, 4, 13, 5, 14, 6, 34, 13, 35, 2, 36, 4, 37, 0, 38, 0, 39, 7, 40, 7, 41, 1, 42, 14, 43, 0, 44, 15, 31, 11, 0, 0, 0, 45, 45, -1, 16, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 3, 9, 3, 10, 2, 11, 1, 12, 4, 13, 5, 14, 6, 46, 8, 47, 0, 31, 11, 0 </int_array>
-			<string> "conns" </string>
-			<int_array  len="0"> 				 </int_array>
+			<string> "version" </string>
+			<int> 2 </int>
 		</dictionary>
-		<resource name="script/script"></resource>
+
 	</main_resource>
 </resource_file>

+ 157 - 85
demos/2d/rubegoldberg/box.xml

@@ -1,142 +1,214 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="3" version="0.99" version_name="Godot Engine v0.99.2864-pre-beta">
-	<ext_resource path="res://art/box.png" type="Texture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+	<ext_resource path="res://art/box.png" type="Texture" index="0"></ext_resource>
 	<resource type="RectangleShape2D" path="local://1">
-		<string name="resource/name"> "" </string>
 		<real name="custom_solver_bias"> 0 </real>
 		<vector2 name="extents"> 32, 32 </vector2>
-		<resource name="script/script"></resource>
+
 	</resource>
 	<main_resource>
-		<string name="resource/name"> "" </string>
-		<dictionary name="_bundled">
+		<dictionary name="_bundled" shared="false">
+			<string> "conn_count" </string>
+			<int> 0 </int>
+			<string> "conns" </string>
+			<int_array  len="0"> 				 </int_array>
+			<string> "editable_instances" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "names" </string>
-			<string_array  len="48">
+			<string_array  len="30">
 				<string> "box" </string>
-				<string> "RigidBody2D" </string>
-				<string> "process/process" </string>
-				<string> "process/fixed_process" </string>
-				<string> "process/input" </string>
-				<string> "process/unhandled_input" </string>
-				<string> "process/mode" </string>
-				<string> "visibility/visible" </string>
-				<string> "visibility/toplevel" </string>
-				<string> "visibility/opacity" </string>
-				<string> "visibility/self_opacity" </string>
-				<string> "visibility/on_top" </string>
-				<string> "visibility/blend_mode" </string>
-				<string> "transform/notify" </string>
-				<string> "transform/pos" </string>
-				<string> "transform/rot" </string>
-				<string> "transform/scale" </string>
-				<string> "shape_count" </string>
+				<string> "input/pickable" </string>
 				<string> "shapes/0/shape" </string>
 				<string> "shapes/0/transform" </string>
+				<string> "shapes/0/trigger" </string>
+				<string> "collision/layers" </string>
+				<string> "collision/mask" </string>
 				<string> "mode" </string>
 				<string> "mass" </string>
 				<string> "friction" </string>
 				<string> "bounce" </string>
+				<string> "gravity_scale" </string>
 				<string> "custom_integrator" </string>
 				<string> "continuous_cd" </string>
 				<string> "contacts_reported" </string>
 				<string> "contact_monitor" </string>
-				<string> "active" </string>
+				<string> "sleeping" </string>
 				<string> "can_sleep" </string>
 				<string> "velocity/linear" </string>
 				<string> "velocity/angular" </string>
-				<string> "script/script" </string>
+				<string> "damp_override/linear" </string>
+				<string> "damp_override/angular" </string>
 				<string> "__meta__" </string>
+				<string> "RigidBody2D" </string>
 				<string> "Sprite" </string>
 				<string> "texture" </string>
-				<string> "centered" </string>
-				<string> "offset" </string>
-				<string> "flip_h" </string>
-				<string> "flip_v" </string>
-				<string> "vframes" </string>
-				<string> "hframes" </string>
-				<string> "frame" </string>
-				<string> "modulate" </string>
-				<string> "region" </string>
-				<string> "region_rect" </string>
 				<string> "CollisionShape2D" </string>
 				<string> "shape" </string>
+				<string> "trigger" </string>
+				<string> "_update_shape_index" </string>
 			</string_array>
-			<string> "version" </string>
-			<int> 1 </int>
-			<string> "conn_count" </string>
-			<int> 0 </int>
 			<string> "node_count" </string>
 			<int> 3 </int>
+			<string> "node_paths" </string>
+			<array  len="0" shared="false">
+			</array>
+			<string> "nodes" </string>
+			<int_array  len="73"> 				-1, -1, 23, 0, -1, 22, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 5, 10, 6, 11, 5, 12, 0, 13, 4, 14, 4, 15, 0, 16, 0, 17, 7, 18, 8, 19, 6, 20, 9, 21, 9, 22, 10, 0, 0, 0, 24, 24, -1, 1, 25, 11, 0, 0, 0, 26, 26, -1, 3, 27, 1, 28, 0, 29, 12, 0 </int_array>
 			<string> "variants" </string>
-			<array  len="15">
+			<array  len="13" shared="false">
 				<bool> False </bool>
+				<resource  resource_type="Shape2D" path="local://1">  </resource>
+				<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+				<int> 1 </int>
 				<int> 0 </int>
-				<bool> True </bool>
 				<real> 1 </real>
-				<vector2> 0, 0 </vector2>
 				<real> 0 </real>
-				<vector2> 1, 1 </vector2>
-				<int> 1 </int>
-				<resource  resource_type="RectangleShape2D" path="local://1">  </resource>
-				<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
-				<resource name=""></resource>				<dictionary>
+				<bool> True </bool>
+				<vector2> 0, 0 </vector2>
+				<real> -1 </real>
+				<dictionary  shared="false">
+					<string> "__editor_plugin_screen__" </string>
+					<string> "2D" </string>
 					<string> "__editor_plugin_states__" </string>
-					<dictionary>
+					<dictionary  shared="false">
 						<string> "2D" </string>
-						<dictionary>
-							<string> "zoom" </string>
-							<real> 1 </real>
+						<dictionary  shared="false">
 							<string> "ofs" </string>
 							<vector2> -125, -163 </vector2>
+							<string> "snap_grid" </string>
+							<bool> False </bool>
+							<string> "snap_offset" </string>
+							<vector2> 0, 0 </vector2>
+							<string> "snap_pixel" </string>
+							<bool> False </bool>
+							<string> "snap_relative" </string>
+							<bool> False </bool>
+							<string> "snap_rotation" </string>
+							<bool> False </bool>
+							<string> "snap_rotation_offset" </string>
+							<real> 0 </real>
+							<string> "snap_rotation_step" </string>
+							<real> 0.261799 </real>
+							<string> "snap_show_grid" </string>
+							<bool> False </bool>
+							<string> "snap_step" </string>
+							<vector2> 10, 10 </vector2>
+							<string> "zoom" </string>
+							<real> 1 </real>
 						</dictionary>
 						<string> "3D" </string>
-						<dictionary>
-							<string> "zfar" </string>
-							<real> 500 </real>
+						<dictionary  shared="false">
+							<string> "ambient_light_color" </string>
+							<color> 0.15, 0.15, 0.15, 1 </color>
+							<string> "default_light" </string>
+							<bool> True </bool>
+							<string> "default_srgb" </string>
+							<bool> False </bool>
+							<string> "deflight_rot_x" </string>
+							<real> 0.942478 </real>
+							<string> "deflight_rot_y" </string>
+							<real> 0.628319 </real>
 							<string> "fov" </string>
 							<real> 45 </real>
-							<string> "window_mode" </string>
-							<int> 0 </int>
-							<string> "window_0" </string>
-							<dictionary>
-								<string> "distance" </string>
-								<real> 4 </real>
-								<string> "default_light" </string>
-								<bool> True </bool>
-								<string> "x_rot" </string>
-								<real> 0.337 </real>
-								<string> "y_rot" </string>
-								<real> -0.575 </real>
-								<string> "show_grid" </string>
-								<bool> True </bool>
-								<string> "show_origin" </string>
-								<bool> True </bool>
-								<string> "pos" </string>
-								<vector3> 0, 0, 0 </vector3>
-							</dictionary>
+							<string> "show_grid" </string>
+							<bool> True </bool>
+							<string> "show_origin" </string>
+							<bool> True </bool>
+							<string> "viewport_mode" </string>
+							<int> 1 </int>
+							<string> "viewports" </string>
+							<array  len="4" shared="false">
+								<dictionary  shared="false">
+									<string> "distance" </string>
+									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> True </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
+									<string> "x_rot" </string>
+									<real> 0 </real>
+									<string> "y_rot" </string>
+									<real> 0 </real>
+								</dictionary>
+								<dictionary  shared="false">
+									<string> "distance" </string>
+									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
+									<string> "x_rot" </string>
+									<real> 0 </real>
+									<string> "y_rot" </string>
+									<real> 0 </real>
+								</dictionary>
+								<dictionary  shared="false">
+									<string> "distance" </string>
+									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
+									<string> "x_rot" </string>
+									<real> 0 </real>
+									<string> "y_rot" </string>
+									<real> 0 </real>
+								</dictionary>
+								<dictionary  shared="false">
+									<string> "distance" </string>
+									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
+									<string> "x_rot" </string>
+									<real> 0 </real>
+									<string> "y_rot" </string>
+									<real> 0 </real>
+								</dictionary>
+							</array>
+							<string> "zfar" </string>
+							<real> 500 </real>
 							<string> "znear" </string>
 							<real> 0.1 </real>
 						</dictionary>
+						<string> "Anim" </string>
+						<dictionary  shared="false">
+							<string> "visible" </string>
+							<bool> False </bool>
+						</dictionary>
 					</dictionary>
 					<string> "__editor_run_settings__" </string>
-					<dictionary>
+					<dictionary  shared="false">
 						<string> "custom_args" </string>
 						<string> "-l $scene" </string>
 						<string> "run_mode" </string>
 						<int> 0 </int>
 					</dictionary>
-					<string> "__editor_plugin_screen__" </string>
-					<string> "2D" </string>
 				</dictionary>
-				<resource  resource_type="Texture" path="res://art/box.png">  </resource>
-				<color> 1, 1, 1, 1 </color>
-				<rect2> 0, 0, 0, 0 </rect2>
+				<resource  external="0">  </resource>
+				<int> -1 </int>
 			</array>
-			<string> "nodes" </string>
-			<int_array  len="173"> 				-1, -1, 1, 0, -1, 32, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 17, 7, 18, 8, 19, 9, 20, 1, 21, 3, 22, 3, 23, 5, 24, 0, 25, 0, 26, 1, 27, 0, 28, 2, 29, 2, 30, 4, 31, 5, 32, 10, 33, 11, 0, 0, 0, 34, 34, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 6, 35, 12, 36, 2, 37, 4, 38, 0, 39, 0, 40, 7, 41, 7, 42, 1, 43, 13, 44, 0, 45, 14, 32, 10, 0, 0, 0, 46, 46, -1, 17, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 47, 8, 32, 10, 0 </int_array>
-			<string> "conns" </string>
-			<int_array  len="0"> 				 </int_array>
+			<string> "version" </string>
+			<int> 2 </int>
 		</dictionary>
-		<resource name="script/script"></resource>
+
 	</main_resource>
 </resource_file>

+ 158 - 86
demos/2d/rubegoldberg/domino.xml

@@ -1,143 +1,215 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="3" version="0.99" version_name="Godot Engine v0.99.2864-pre-beta">
-	<ext_resource path="res://art/domino.png" type="Texture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+	<ext_resource path="res://art/domino.png" type="Texture" index="0"></ext_resource>
 	<resource type="RectangleShape2D" path="local://1">
-		<string name="resource/name"> "" </string>
 		<real name="custom_solver_bias"> 0 </real>
 		<vector2 name="extents"> 16, 64 </vector2>
-		<resource name="script/script"></resource>
+
 	</resource>
 	<main_resource>
-		<string name="resource/name"> "" </string>
-		<dictionary name="_bundled">
+		<dictionary name="_bundled" shared="false">
+			<string> "conn_count" </string>
+			<int> 0 </int>
+			<string> "conns" </string>
+			<int_array  len="0"> 				 </int_array>
+			<string> "editable_instances" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "names" </string>
-			<string_array  len="48">
+			<string_array  len="30">
 				<string> "domino" </string>
-				<string> "RigidBody2D" </string>
-				<string> "process/process" </string>
-				<string> "process/fixed_process" </string>
-				<string> "process/input" </string>
-				<string> "process/unhandled_input" </string>
-				<string> "process/mode" </string>
-				<string> "visibility/visible" </string>
-				<string> "visibility/toplevel" </string>
-				<string> "visibility/opacity" </string>
-				<string> "visibility/self_opacity" </string>
-				<string> "visibility/on_top" </string>
-				<string> "visibility/blend_mode" </string>
-				<string> "transform/notify" </string>
-				<string> "transform/pos" </string>
-				<string> "transform/rot" </string>
-				<string> "transform/scale" </string>
-				<string> "shape_count" </string>
+				<string> "input/pickable" </string>
 				<string> "shapes/0/shape" </string>
 				<string> "shapes/0/transform" </string>
+				<string> "shapes/0/trigger" </string>
+				<string> "collision/layers" </string>
+				<string> "collision/mask" </string>
 				<string> "mode" </string>
 				<string> "mass" </string>
 				<string> "friction" </string>
 				<string> "bounce" </string>
+				<string> "gravity_scale" </string>
 				<string> "custom_integrator" </string>
 				<string> "continuous_cd" </string>
 				<string> "contacts_reported" </string>
 				<string> "contact_monitor" </string>
-				<string> "active" </string>
+				<string> "sleeping" </string>
 				<string> "can_sleep" </string>
 				<string> "velocity/linear" </string>
 				<string> "velocity/angular" </string>
-				<string> "script/script" </string>
+				<string> "damp_override/linear" </string>
+				<string> "damp_override/angular" </string>
 				<string> "__meta__" </string>
+				<string> "RigidBody2D" </string>
 				<string> "Sprite" </string>
 				<string> "texture" </string>
-				<string> "centered" </string>
-				<string> "offset" </string>
-				<string> "flip_h" </string>
-				<string> "flip_v" </string>
-				<string> "vframes" </string>
-				<string> "hframes" </string>
-				<string> "frame" </string>
-				<string> "modulate" </string>
-				<string> "region" </string>
-				<string> "region_rect" </string>
 				<string> "CollisionShape2D" </string>
 				<string> "shape" </string>
+				<string> "trigger" </string>
+				<string> "_update_shape_index" </string>
 			</string_array>
-			<string> "version" </string>
-			<int> 1 </int>
-			<string> "conn_count" </string>
-			<int> 0 </int>
 			<string> "node_count" </string>
 			<int> 3 </int>
+			<string> "node_paths" </string>
+			<array  len="0" shared="false">
+			</array>
+			<string> "nodes" </string>
+			<int_array  len="73"> 				-1, -1, 23, 0, -1, 22, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 5, 12, 0, 13, 4, 14, 4, 15, 0, 16, 0, 17, 8, 18, 9, 19, 7, 20, 10, 21, 10, 22, 11, 0, 0, 0, 24, 24, -1, 1, 25, 12, 0, 0, 0, 26, 26, -1, 3, 27, 1, 28, 0, 29, 13, 0 </int_array>
 			<string> "variants" </string>
-			<array  len="16">
+			<array  len="14" shared="false">
 				<bool> False </bool>
+				<resource  resource_type="Shape2D" path="local://1">  </resource>
+				<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+				<int> 1 </int>
 				<int> 0 </int>
-				<bool> True </bool>
 				<real> 1 </real>
-				<vector2> 0, 0 </vector2>
-				<real> 0 </real>
-				<vector2> 1, 1 </vector2>
-				<int> 1 </int>
-				<resource  resource_type="RectangleShape2D" path="local://1">  </resource>
-				<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
 				<real> 0.5 </real>
-				<resource name=""></resource>				<dictionary>
+				<real> 0 </real>
+				<bool> True </bool>
+				<vector2> 0, 0 </vector2>
+				<real> -1 </real>
+				<dictionary  shared="false">
+					<string> "__editor_plugin_screen__" </string>
+					<string> "2D" </string>
 					<string> "__editor_plugin_states__" </string>
-					<dictionary>
+					<dictionary  shared="false">
 						<string> "2D" </string>
-						<dictionary>
-							<string> "zoom" </string>
-							<real> 1 </real>
+						<dictionary  shared="false">
 							<string> "ofs" </string>
 							<vector2> -135, -114 </vector2>
+							<string> "snap_grid" </string>
+							<bool> False </bool>
+							<string> "snap_offset" </string>
+							<vector2> 0, 0 </vector2>
+							<string> "snap_pixel" </string>
+							<bool> False </bool>
+							<string> "snap_relative" </string>
+							<bool> False </bool>
+							<string> "snap_rotation" </string>
+							<bool> False </bool>
+							<string> "snap_rotation_offset" </string>
+							<real> 0 </real>
+							<string> "snap_rotation_step" </string>
+							<real> 0.261799 </real>
+							<string> "snap_show_grid" </string>
+							<bool> False </bool>
+							<string> "snap_step" </string>
+							<vector2> 10, 10 </vector2>
+							<string> "zoom" </string>
+							<real> 1 </real>
 						</dictionary>
 						<string> "3D" </string>
-						<dictionary>
-							<string> "zfar" </string>
-							<real> 500 </real>
+						<dictionary  shared="false">
+							<string> "ambient_light_color" </string>
+							<color> 0.15, 0.15, 0.15, 1 </color>
+							<string> "default_light" </string>
+							<bool> True </bool>
+							<string> "default_srgb" </string>
+							<bool> False </bool>
+							<string> "deflight_rot_x" </string>
+							<real> 0.942478 </real>
+							<string> "deflight_rot_y" </string>
+							<real> 0.628319 </real>
 							<string> "fov" </string>
 							<real> 45 </real>
-							<string> "window_mode" </string>
-							<int> 0 </int>
-							<string> "window_0" </string>
-							<dictionary>
-								<string> "distance" </string>
-								<real> 4 </real>
-								<string> "default_light" </string>
-								<bool> True </bool>
-								<string> "x_rot" </string>
-								<real> 0.337 </real>
-								<string> "y_rot" </string>
-								<real> -0.575 </real>
-								<string> "show_grid" </string>
-								<bool> True </bool>
-								<string> "show_origin" </string>
-								<bool> True </bool>
-								<string> "pos" </string>
-								<vector3> 0, 0, 0 </vector3>
-							</dictionary>
+							<string> "show_grid" </string>
+							<bool> True </bool>
+							<string> "show_origin" </string>
+							<bool> True </bool>
+							<string> "viewport_mode" </string>
+							<int> 1 </int>
+							<string> "viewports" </string>
+							<array  len="4" shared="false">
+								<dictionary  shared="false">
+									<string> "distance" </string>
+									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> True </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
+									<string> "x_rot" </string>
+									<real> 0 </real>
+									<string> "y_rot" </string>
+									<real> 0 </real>
+								</dictionary>
+								<dictionary  shared="false">
+									<string> "distance" </string>
+									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
+									<string> "x_rot" </string>
+									<real> 0 </real>
+									<string> "y_rot" </string>
+									<real> 0 </real>
+								</dictionary>
+								<dictionary  shared="false">
+									<string> "distance" </string>
+									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
+									<string> "x_rot" </string>
+									<real> 0 </real>
+									<string> "y_rot" </string>
+									<real> 0 </real>
+								</dictionary>
+								<dictionary  shared="false">
+									<string> "distance" </string>
+									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
+									<string> "x_rot" </string>
+									<real> 0 </real>
+									<string> "y_rot" </string>
+									<real> 0 </real>
+								</dictionary>
+							</array>
+							<string> "zfar" </string>
+							<real> 500 </real>
 							<string> "znear" </string>
 							<real> 0.1 </real>
 						</dictionary>
+						<string> "Anim" </string>
+						<dictionary  shared="false">
+							<string> "visible" </string>
+							<bool> False </bool>
+						</dictionary>
 					</dictionary>
 					<string> "__editor_run_settings__" </string>
-					<dictionary>
+					<dictionary  shared="false">
 						<string> "custom_args" </string>
 						<string> "-l $scene" </string>
 						<string> "run_mode" </string>
 						<int> 0 </int>
 					</dictionary>
-					<string> "__editor_plugin_screen__" </string>
-					<string> "2D" </string>
 				</dictionary>
-				<resource  resource_type="Texture" path="res://art/domino.png">  </resource>
-				<color> 1, 1, 1, 1 </color>
-				<rect2> 0, 0, 0, 0 </rect2>
+				<resource  external="0">  </resource>
+				<int> -1 </int>
 			</array>
-			<string> "nodes" </string>
-			<int_array  len="173"> 				-1, -1, 1, 0, -1, 32, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 17, 7, 18, 8, 19, 9, 20, 1, 21, 3, 22, 10, 23, 5, 24, 0, 25, 0, 26, 1, 27, 0, 28, 2, 29, 2, 30, 4, 31, 5, 32, 11, 33, 12, 0, 0, 0, 34, 34, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 6, 35, 13, 36, 2, 37, 4, 38, 0, 39, 0, 40, 7, 41, 7, 42, 1, 43, 14, 44, 0, 45, 15, 32, 11, 0, 0, 0, 46, 46, -1, 17, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 47, 8, 32, 11, 0 </int_array>
-			<string> "conns" </string>
-			<int_array  len="0"> 				 </int_array>
+			<string> "version" </string>
+			<int> 2 </int>
 		</dictionary>
-		<resource name="script/script"></resource>
+
 	</main_resource>
 </resource_file>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 121 - 84
demos/2d/rubegoldberg/pendulum.xml


+ 106 - 82
demos/2d/rubegoldberg/platform.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="3" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
-	<ext_resource path="res://art/platform.*" type="ImageTexture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+	<ext_resource path="res://art/platform.png" type="Texture" index="0"></ext_resource>
 	<resource type="RectangleShape2D" path="local://1">
 		<real name="custom_solver_bias"> 0 </real>
 		<vector2 name="extents"> 128, 16 </vector2>
@@ -8,148 +8,178 @@
 	</resource>
 	<main_resource>
 		<dictionary name="_bundled" shared="false">
+			<string> "conn_count" </string>
+			<int> 0 </int>
+			<string> "conns" </string>
+			<int_array  len="0"> 				 </int_array>
+			<string> "editable_instances" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "names" </string>
-			<string_array  len="34">
+			<string_array  len="19">
 				<string> "platform" </string>
-				<string> "StaticBody2D" </string>
-				<string> "visibility/visible" </string>
-				<string> "visibility/opacity" </string>
-				<string> "visibility/self_opacity" </string>
-				<string> "visibility/on_top" </string>
-				<string> "transform/pos" </string>
-				<string> "transform/rot" </string>
-				<string> "transform/scale" </string>
-				<string> "shape_count" </string>
+				<string> "input/pickable" </string>
 				<string> "shapes/0/shape" </string>
 				<string> "shapes/0/transform" </string>
 				<string> "shapes/0/trigger" </string>
-				<string> "simulate_motion" </string>
+				<string> "collision/layers" </string>
+				<string> "collision/mask" </string>
 				<string> "constant_linear_velocity" </string>
 				<string> "constant_angular_velocity" </string>
 				<string> "friction" </string>
 				<string> "bounce" </string>
 				<string> "__meta__" </string>
+				<string> "StaticBody2D" </string>
 				<string> "Sprite" </string>
 				<string> "texture" </string>
-				<string> "centered" </string>
-				<string> "offset" </string>
-				<string> "flip_h" </string>
-				<string> "flip_v" </string>
-				<string> "vframes" </string>
-				<string> "hframes" </string>
-				<string> "frame" </string>
-				<string> "modulate" </string>
-				<string> "region" </string>
-				<string> "region_rect" </string>
 				<string> "CollisionShape2D" </string>
 				<string> "shape" </string>
 				<string> "trigger" </string>
+				<string> "_update_shape_index" </string>
 			</string_array>
-			<string> "version" </string>
-			<int> 1 </int>
-			<string> "conn_count" </string>
-			<int> 0 </int>
 			<string> "node_count" </string>
 			<int> 3 </int>
+			<string> "node_paths" </string>
+			<array  len="0" shared="false">
+			</array>
+			<string> "nodes" </string>
+			<int_array  len="51"> 				-1, -1, 12, 0, -1, 11, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 6, 10, 5, 11, 7, 0, 0, 0, 13, 13, -1, 1, 14, 8, 0, 0, 0, 15, 15, -1, 3, 16, 1, 17, 0, 18, 9, 0 </int_array>
 			<string> "variants" </string>
-			<array  len="14" shared="false">
-				<bool> True </bool>
-				<real> 1 </real>
+			<array  len="10" shared="false">
+				<bool> False </bool>
+				<resource  resource_type="Shape2D" path="local://1">  </resource>
+				<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+				<int> 1 </int>
 				<vector2> 0, 0 </vector2>
 				<real> 0 </real>
-				<vector2> 1, 1 </vector2>
-				<int> 1 </int>
-				<resource  resource_type="RectangleShape2D" path="local://1">  </resource>
-				<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
-				<bool> False </bool>
+				<real> 1 </real>
 				<dictionary  shared="false">
+					<string> "__editor_plugin_screen__" </string>
+					<string> "2D" </string>
 					<string> "__editor_plugin_states__" </string>
 					<dictionary  shared="false">
 						<string> "2D" </string>
 						<dictionary  shared="false">
-							<string> "pixel_snap" </string>
+							<string> "ofs" </string>
+							<vector2> -135, -114 </vector2>
+							<string> "snap_grid" </string>
+							<bool> False </bool>
+							<string> "snap_offset" </string>
+							<vector2> 0, 0 </vector2>
+							<string> "snap_pixel" </string>
+							<bool> False </bool>
+							<string> "snap_relative" </string>
+							<bool> False </bool>
+							<string> "snap_rotation" </string>
+							<bool> False </bool>
+							<string> "snap_rotation_offset" </string>
+							<real> 0 </real>
+							<string> "snap_rotation_step" </string>
+							<real> 0.261799 </real>
+							<string> "snap_show_grid" </string>
 							<bool> False </bool>
+							<string> "snap_step" </string>
+							<vector2> 10, 10 </vector2>
 							<string> "zoom" </string>
 							<real> 1 </real>
-							<string> "ofs" </string>
-							<vector2> -135, -114 </vector2>
 						</dictionary>
 						<string> "3D" </string>
 						<dictionary  shared="false">
-							<string> "zfar" </string>
-							<real> 500 </real>
+							<string> "ambient_light_color" </string>
+							<color> 0.15, 0.15, 0.15, 1 </color>
+							<string> "default_light" </string>
+							<bool> True </bool>
+							<string> "default_srgb" </string>
+							<bool> False </bool>
+							<string> "deflight_rot_x" </string>
+							<real> 0.942478 </real>
+							<string> "deflight_rot_y" </string>
+							<real> 0.628319 </real>
 							<string> "fov" </string>
 							<real> 45 </real>
+							<string> "show_grid" </string>
+							<bool> True </bool>
+							<string> "show_origin" </string>
+							<bool> True </bool>
+							<string> "viewport_mode" </string>
+							<int> 1 </int>
 							<string> "viewports" </string>
 							<array  len="4" shared="false">
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> True </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 							</array>
-							<string> "viewport_mode" </string>
-							<int> 1 </int>
-							<string> "default_light" </string>
-							<bool> True </bool>
-							<string> "show_grid" </string>
-							<bool> True </bool>
-							<string> "show_origin" </string>
-							<bool> True </bool>
+							<string> "zfar" </string>
+							<real> 500 </real>
 							<string> "znear" </string>
 							<real> 0.1 </real>
 						</dictionary>
+						<string> "Anim" </string>
+						<dictionary  shared="false">
+							<string> "visible" </string>
+							<bool> False </bool>
+						</dictionary>
 					</dictionary>
 					<string> "__editor_run_settings__" </string>
 					<dictionary  shared="false">
@@ -158,18 +188,12 @@
 						<string> "run_mode" </string>
 						<int> 0 </int>
 					</dictionary>
-					<string> "__editor_plugin_screen__" </string>
-					<string> "2D" </string>
 				</dictionary>
-				<resource  resource_type="ImageTexture" path="res://art/platform.*">  </resource>
-				<int> 0 </int>
-				<color> 1, 1, 1, 1 </color>
-				<rect2> 0, 0, 0, 0 </rect2>
+				<resource  external="0">  </resource>
+				<int> -1 </int>
 			</array>
-			<string> "nodes" </string>
-			<int_array  len="109"> 				-1, -1, 1, 0, -1, 17, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 8, 13, 8, 14, 2, 15, 3, 16, 1, 17, 3, 18, 9, 0, 0, 0, 19, 19, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 20, 10, 21, 0, 22, 2, 23, 8, 24, 8, 25, 5, 26, 5, 27, 11, 28, 12, 29, 8, 30, 13, 0, 0, 0, 31, 31, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 32, 6, 33, 8, 0 </int_array>
-			<string> "conns" </string>
-			<int_array  len="0"> 				 </int_array>
+			<string> "version" </string>
+			<int> 2 </int>
 		</dictionary>
 
 	</main_resource>

+ 116 - 65
demos/2d/rubegoldberg/rubegoldberg.xml

@@ -1,25 +1,37 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="7" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
-	<ext_resource path="res://platform.*" type="PackedScene"></ext_resource>
-	<ext_resource path="res://ball.*" type="PackedScene"></ext_resource>
-	<ext_resource path="res://domino.*" type="PackedScene"></ext_resource>
-	<ext_resource path="res://seesaw.*" type="PackedScene"></ext_resource>
-	<ext_resource path="res://box.*" type="PackedScene"></ext_resource>
-	<ext_resource path="res://pendulum.*" type="PackedScene"></ext_resource>
+<resource_file type="PackedScene" subresource_count="7" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+	<ext_resource path="res://platform.xml" type="PackedScene" index="0"></ext_resource>
+	<ext_resource path="res://seesaw.xml" type="PackedScene" index="3"></ext_resource>
+	<ext_resource path="res://pendulum.xml" type="PackedScene" index="5"></ext_resource>
+	<ext_resource path="res://box.xml" type="PackedScene" index="4"></ext_resource>
+	<ext_resource path="res://ball.xml" type="PackedScene" index="1"></ext_resource>
+	<ext_resource path="res://domino.xml" type="PackedScene" index="2"></ext_resource>
 	<main_resource>
 		<dictionary name="_bundled" shared="false">
+			<string> "conn_count" </string>
+			<int> 0 </int>
+			<string> "conns" </string>
+			<int_array  len="0"> 				 </int_array>
+			<string> "editable_instances" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "names" </string>
-			<string_array  len="29">
+			<string_array  len="33">
 				<string> "Node" </string>
 				<string> "__meta__" </string>
 				<string> "platform" </string>
-				<string> "StaticBody2D" </string>
 				<string> "transform/pos" </string>
 				<string> "transform/rot" </string>
+				<string> "input/pickable" </string>
+				<string> "collision/layers" </string>
+				<string> "collision/mask" </string>
 				<string> "platform 2" </string>
 				<string> "platform 3" </string>
 				<string> "Ball" </string>
-				<string> "RigidBody2D" </string>
+				<string> "gravity_scale" </string>
+				<string> "sleeping" </string>
+				<string> "damp_override/linear" </string>
+				<string> "damp_override/angular" </string>
 				<string> "domino" </string>
 				<string> "domino 2" </string>
 				<string> "domino 4" </string>
@@ -31,7 +43,6 @@
 				<string> "platform 7" </string>
 				<string> "platform 8" </string>
 				<string> "SeeSaw" </string>
-				<string> "Node2D" </string>
 				<string> "box" </string>
 				<string> "pendulum" </string>
 				<string> "pendulum 2" </string>
@@ -40,102 +51,142 @@
 				<string> "Ball 5" </string>
 				<string> "velocity/linear" </string>
 			</string_array>
-			<string> "version" </string>
-			<int> 1 </int>
-			<string> "conn_count" </string>
-			<int> 0 </int>
 			<string> "node_count" </string>
 			<int> 21 </int>
+			<string> "node_paths" </string>
+			<array  len="0" shared="false">
+			</array>
+			<string> "nodes" </string>
+			<int_array  len="347"> 				-1, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, 2147483647, 2, 1, 5, 3, 2, 4, 3, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 8, 1, 4, 3, 6, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 9, 1, 4, 3, 7, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 10, 8, 8, 3, 9, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 15, 12, 8, 3, 13, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 16, 12, 8, 3, 14, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 17, 12, 8, 3, 15, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 18, 1, 5, 3, 16, 4, 17, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 19, 1, 6, 3, 18, 4, 19, 20, 20, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 21, 8, 8, 3, 21, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 22, 1, 4, 3, 22, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 23, 1, 4, 3, 23, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 24, 1, 4, 3, 24, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 25, 25, 1, 3, 26, 0, 0, 0, 2147483647, 26, 27, 9, 3, 28, 4, 29, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 27, 30, 1, 3, 31, 0, 0, 0, 2147483647, 28, 30, 1, 3, 32, 0, 0, 0, 2147483647, 29, 30, 1, 3, 33, 0, 0, 0, 2147483647, 30, 30, 1, 3, 34, 0, 0, 0, 2147483647, 31, 8, 9, 3, 35, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 32, 36, 13, 11, 14, 11, 0 </int_array>
 			<string> "variants" </string>
-			<array  len="33" shared="false">
+			<array  len="37" shared="false">
 				<dictionary  shared="false">
+					<string> "__editor_plugin_screen__" </string>
+					<string> "2D" </string>
 					<string> "__editor_plugin_states__" </string>
 					<dictionary  shared="false">
 						<string> "2D" </string>
 						<dictionary  shared="false">
-							<string> "pixel_snap" </string>
+							<string> "ofs" </string>
+							<vector2> -717.096, -249.162 </vector2>
+							<string> "snap_grid" </string>
 							<bool> False </bool>
+							<string> "snap_offset" </string>
+							<vector2> 0, 0 </vector2>
+							<string> "snap_pixel" </string>
+							<bool> False </bool>
+							<string> "snap_relative" </string>
+							<bool> False </bool>
+							<string> "snap_rotation" </string>
+							<bool> False </bool>
+							<string> "snap_rotation_offset" </string>
+							<real> 0 </real>
+							<string> "snap_rotation_step" </string>
+							<real> 0.261799 </real>
+							<string> "snap_show_grid" </string>
+							<bool> False </bool>
+							<string> "snap_step" </string>
+							<vector2> 10, 10 </vector2>
 							<string> "zoom" </string>
 							<real> 0.598737 </real>
-							<string> "ofs" </string>
-							<vector2> -15.4883, -75.0379 </vector2>
 						</dictionary>
 						<string> "3D" </string>
 						<dictionary  shared="false">
-							<string> "zfar" </string>
-							<real> 500 </real>
+							<string> "ambient_light_color" </string>
+							<color> 0.15, 0.15, 0.15, 1 </color>
+							<string> "default_light" </string>
+							<bool> True </bool>
+							<string> "default_srgb" </string>
+							<bool> False </bool>
+							<string> "deflight_rot_x" </string>
+							<real> 0.942478 </real>
+							<string> "deflight_rot_y" </string>
+							<real> 0.628319 </real>
 							<string> "fov" </string>
 							<real> 45 </real>
+							<string> "show_grid" </string>
+							<bool> True </bool>
+							<string> "show_origin" </string>
+							<bool> True </bool>
+							<string> "viewport_mode" </string>
+							<int> 1 </int>
 							<string> "viewports" </string>
 							<array  len="4" shared="false">
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> True </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 								<dictionary  shared="false">
 									<string> "distance" </string>
 									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
 									<string> "x_rot" </string>
 									<real> 0 </real>
 									<string> "y_rot" </string>
 									<real> 0 </real>
-									<string> "use_orthogonal" </string>
-									<bool> False </bool>
-									<string> "use_environment" </string>
-									<bool> False </bool>
-									<string> "pos" </string>
-									<vector3> 0, 0, 0 </vector3>
 								</dictionary>
 							</array>
-							<string> "viewport_mode" </string>
-							<int> 1 </int>
-							<string> "default_light" </string>
-							<bool> True </bool>
-							<string> "show_grid" </string>
-							<bool> True </bool>
-							<string> "show_origin" </string>
-							<bool> True </bool>
+							<string> "zfar" </string>
+							<real> 500 </real>
 							<string> "znear" </string>
 							<real> 0.1 </real>
 						</dictionary>
+						<string> "Anim" </string>
+						<dictionary  shared="false">
+							<string> "visible" </string>
+							<bool> False </bool>
+						</dictionary>
 					</dictionary>
 					<string> "__editor_run_settings__" </string>
 					<dictionary  shared="false">
@@ -144,17 +195,19 @@
 						<string> "run_mode" </string>
 						<int> 0 </int>
 					</dictionary>
-					<string> "__editor_plugin_screen__" </string>
-					<string> "2D" </string>
 				</dictionary>
-				<resource  resource_type="PackedScene" path="res://platform.*">  </resource>
+				<resource  external="0">  </resource>
 				<vector2> 116.881, 145.589 </vector2>
 				<real> -20.87962 </real>
+				<bool> False </bool>
+				<int> 1 </int>
 				<vector2> 336.29, 264.52 </vector2>
 				<vector2> 526.99, 264.52 </vector2>
-				<resource  resource_type="PackedScene" path="res://ball.*">  </resource>
+				<resource  external="1">  </resource>
 				<vector2> 76.0801, 67.2141 </vector2>
-				<resource  resource_type="PackedScene" path="res://domino.*">  </resource>
+				<real> 1 </real>
+				<real> -1 </real>
+				<resource  external="2">  </resource>
 				<vector2> 262.764, 182.008 </vector2>
 				<vector2> 356.951, 182.008 </vector2>
 				<vector2> 448.834, 179.291 </vector2>
@@ -167,12 +220,12 @@
 				<vector2> 679.231, 588.598 </vector2>
 				<vector2> 424.491, 588.598 </vector2>
 				<vector2> 185.655, 588.598 </vector2>
-				<resource  resource_type="PackedScene" path="res://seesaw.*">  </resource>
+				<resource  external="3">  </resource>
 				<vector2> 602.935, 554.501 </vector2>
-				<resource  resource_type="PackedScene" path="res://box.*">  </resource>
+				<resource  external="4">  </resource>
 				<vector2> 476.002, 509.406 </vector2>
 				<real> 21.737282 </real>
-				<resource  resource_type="PackedScene" path="res://pendulum.*">  </resource>
+				<resource  external="5">  </resource>
 				<vector2> 391.607, 305.444 </vector2>
 				<vector2> 343.172, 303.774 </vector2>
 				<vector2> 288.056, 303.774 </vector2>
@@ -180,10 +233,8 @@
 				<vector2> 116.165, 526.515 </vector2>
 				<vector2> 0, -200 </vector2>
 			</array>
-			<string> "nodes" </string>
-			<int_array  len="201"> 				-1, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, 3, 2, 1, 2, 4, 2, 5, 3, 0, 0, 0, 3, 6, 1, 1, 4, 4, 0, 0, 0, 3, 7, 1, 1, 4, 5, 0, 0, 0, 9, 8, 6, 1, 4, 7, 0, 0, 0, 9, 10, 8, 1, 4, 9, 0, 0, 0, 9, 11, 8, 1, 4, 10, 0, 0, 0, 9, 12, 8, 1, 4, 11, 0, 0, 0, 3, 13, 1, 2, 4, 12, 5, 13, 0, 0, 0, 3, 14, 1, 3, 4, 14, 5, 15, 15, 16, 0, 0, 0, 9, 16, 6, 1, 4, 17, 0, 0, 0, 3, 17, 1, 1, 4, 18, 0, 0, 0, 3, 18, 1, 1, 4, 19, 0, 0, 0, 3, 19, 1, 1, 4, 20, 0, 0, 0, 21, 20, 21, 1, 4, 22, 0, 0, 0, 9, 22, 23, 2, 4, 24, 5, 25, 0, 0, 0, 21, 23, 26, 1, 4, 27, 0, 0, 0, 21, 24, 26, 1, 4, 28, 0, 0, 0, 21, 25, 26, 1, 4, 29, 0, 0, 0, 21, 26, 26, 1, 4, 30, 0, 0, 0, 9, 27, 6, 2, 4, 31, 28, 32, 0 </int_array>
-			<string> "conns" </string>
-			<int_array  len="0"> 				 </int_array>
+			<string> "version" </string>
+			<int> 2 </int>
 		</dictionary>
 
 	</main_resource>

+ 170 - 96
demos/2d/rubegoldberg/seesaw.xml

@@ -1,169 +1,243 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="5" version="0.99" version_name="Godot Engine v0.99.2864-pre-beta">
-	<ext_resource path="res://art/seesaw_top.png" type="Texture"></ext_resource>
-	<ext_resource path="res://art/seesaw_base.png" type="Texture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="5" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+	<ext_resource path="res://art/seesaw_top.png" type="Texture" index="1"></ext_resource>
+	<ext_resource path="res://art/seesaw_base.png" type="Texture" index="0"></ext_resource>
 	<resource type="ConcavePolygonShape2D" path="local://1">
-		<string name="resource/name"> "" </string>
 		<real name="custom_solver_bias"> 0 </real>
 		<vector2_array name="segments" len="6"> 			-32.6231, 32.0838, -1.28218, -31.1383, -1.28218, -31.1383, 33.8412, 33.1645, 33.8412, 33.1645, -32.6231, 32.0838 </vector2_array>
-		<resource name="script/script"></resource>
+
 	</resource>
 	<resource type="ConvexPolygonShape2D" path="local://2">
-		<string name="resource/name"> "" </string>
 		<real name="custom_solver_bias"> 0 </real>
 		<vector2_array name="points" len="4"> 			-99.0874, 7.76759, -125.025, -8.98358, 125.162, -8.44321, 99.2248, 7.22723 </vector2_array>
-		<resource name="script/script"></resource>
+
 	</resource>
 	<main_resource>
-		<string name="resource/name"> "" </string>
-		<dictionary name="_bundled">
+		<dictionary name="_bundled" shared="false">
+			<string> "conn_count" </string>
+			<int> 0 </int>
+			<string> "conns" </string>
+			<int_array  len="0"> 				 </int_array>
+			<string> "editable_instances" </string>
+			<array  len="0" shared="false">
+			</array>
 			<string> "names" </string>
-			<string_array  len="58">
+			<string_array  len="43">
 				<string> "SeeSaw" </string>
-				<string> "Node2D" </string>
-				<string> "process/process" </string>
-				<string> "process/fixed_process" </string>
-				<string> "process/input" </string>
-				<string> "process/unhandled_input" </string>
-				<string> "process/mode" </string>
-				<string> "visibility/visible" </string>
-				<string> "visibility/toplevel" </string>
-				<string> "visibility/opacity" </string>
-				<string> "visibility/self_opacity" </string>
-				<string> "visibility/on_top" </string>
-				<string> "visibility/blend_mode" </string>
-				<string> "transform/notify" </string>
-				<string> "transform/pos" </string>
-				<string> "transform/rot" </string>
-				<string> "transform/scale" </string>
-				<string> "script/script" </string>
 				<string> "__meta__" </string>
+				<string> "Node2D" </string>
 				<string> "Sprite" </string>
 				<string> "texture" </string>
-				<string> "centered" </string>
-				<string> "offset" </string>
-				<string> "flip_h" </string>
-				<string> "flip_v" </string>
-				<string> "vframes" </string>
-				<string> "hframes" </string>
-				<string> "frame" </string>
-				<string> "modulate" </string>
-				<string> "region" </string>
-				<string> "region_rect" </string>
 				<string> "StaticBody2D" </string>
-				<string> "shape_count" </string>
+				<string> "input/pickable" </string>
 				<string> "shapes/0/shape" </string>
 				<string> "shapes/0/transform" </string>
-				<string> "simulate_motion" </string>
+				<string> "shapes/0/trigger" </string>
+				<string> "collision/layers" </string>
+				<string> "collision/mask" </string>
 				<string> "constant_linear_velocity" </string>
 				<string> "constant_angular_velocity" </string>
+				<string> "friction" </string>
+				<string> "bounce" </string>
 				<string> "CollisionPolygon2D" </string>
 				<string> "build_mode" </string>
 				<string> "polygon" </string>
+				<string> "shape_range" </string>
+				<string> "trigger" </string>
 				<string> "RigidBody2D" </string>
+				<string> "transform/pos" </string>
+				<string> "transform/rot" </string>
 				<string> "mode" </string>
 				<string> "mass" </string>
-				<string> "friction" </string>
-				<string> "bounce" </string>
+				<string> "gravity_scale" </string>
 				<string> "custom_integrator" </string>
 				<string> "continuous_cd" </string>
 				<string> "contacts_reported" </string>
 				<string> "contact_monitor" </string>
-				<string> "active" </string>
+				<string> "sleeping" </string>
 				<string> "can_sleep" </string>
 				<string> "velocity/linear" </string>
 				<string> "velocity/angular" </string>
+				<string> "damp_override/linear" </string>
+				<string> "damp_override/angular" </string>
+				<string> "transform/scale" </string>
 				<string> "PinJoint2D" </string>
 				<string> "node_a" </string>
 				<string> "node_b" </string>
 				<string> "bias/bias" </string>
+				<string> "softness" </string>
 			</string_array>
-			<string> "version" </string>
-			<int> 1 </int>
-			<string> "conn_count" </string>
-			<int> 0 </int>
 			<string> "node_count" </string>
 			<int> 8 </int>
+			<string> "node_paths" </string>
+			<array  len="0" shared="false">
+			</array>
+			<string> "nodes" </string>
+			<int_array  len="156"> 				-1, -1, 2, 0, -1, 1, 1, 0, 0, 0, 0, 3, 3, -1, 1, 4, 1, 0, 1, 0, 5, 5, -1, 10, 6, 2, 7, 3, 8, 4, 9, 2, 10, 5, 11, 5, 12, 6, 13, 7, 14, 8, 15, 7, 0, 2, 0, 16, 16, -1, 4, 17, 9, 18, 10, 19, 11, 20, 2, 0, 0, 0, 21, 21, -1, 23, 22, 12, 23, 13, 6, 2, 7, 14, 8, 4, 9, 2, 10, 5, 11, 5, 24, 9, 25, 8, 14, 8, 15, 7, 26, 8, 27, 2, 28, 9, 29, 9, 30, 2, 31, 2, 32, 15, 33, 6, 34, 7, 35, 16, 36, 16, 0, 4, 0, 3, 3, -1, 2, 37, 17, 4, 18, 0, 4, 0, 16, 16, -1, 4, 17, 9, 18, 19, 19, 11, 20, 2, 0, 0, 0, 38, 38, -1, 5, 22, 20, 39, 21, 40, 22, 41, 7, 42, 7, 0 </int_array>
 			<string> "variants" </string>
-			<array  len="25">
-				<bool> False </bool>
-				<int> 0 </int>
-				<bool> True </bool>
-				<real> 1 </real>
-				<vector2> 0, 0 </vector2>
-				<real> 0 </real>
-				<vector2> 1, 1 </vector2>
-				<resource name=""></resource>				<dictionary>
+			<array  len="23" shared="false">
+				<dictionary  shared="false">
+					<string> "__editor_plugin_screen__" </string>
+					<string> "2D" </string>
 					<string> "__editor_plugin_states__" </string>
-					<dictionary>
+					<dictionary  shared="false">
 						<string> "2D" </string>
-						<dictionary>
-							<string> "zoom" </string>
-							<real> 1.670183 </real>
+						<dictionary  shared="false">
 							<string> "ofs" </string>
 							<vector2> -277.779, -292.484 </vector2>
+							<string> "snap_grid" </string>
+							<bool> False </bool>
+							<string> "snap_offset" </string>
+							<vector2> 0, 0 </vector2>
+							<string> "snap_pixel" </string>
+							<bool> False </bool>
+							<string> "snap_relative" </string>
+							<bool> False </bool>
+							<string> "snap_rotation" </string>
+							<bool> False </bool>
+							<string> "snap_rotation_offset" </string>
+							<real> 0 </real>
+							<string> "snap_rotation_step" </string>
+							<real> 0.261799 </real>
+							<string> "snap_show_grid" </string>
+							<bool> False </bool>
+							<string> "snap_step" </string>
+							<vector2> 10, 10 </vector2>
+							<string> "zoom" </string>
+							<real> 1.670183 </real>
 						</dictionary>
 						<string> "3D" </string>
-						<dictionary>
-							<string> "zfar" </string>
-							<real> 500 </real>
+						<dictionary  shared="false">
+							<string> "ambient_light_color" </string>
+							<color> 0.15, 0.15, 0.15, 1 </color>
+							<string> "default_light" </string>
+							<bool> True </bool>
+							<string> "default_srgb" </string>
+							<bool> False </bool>
+							<string> "deflight_rot_x" </string>
+							<real> 0.942478 </real>
+							<string> "deflight_rot_y" </string>
+							<real> 0.628319 </real>
 							<string> "fov" </string>
 							<real> 45 </real>
-							<string> "window_mode" </string>
-							<int> 0 </int>
-							<string> "window_0" </string>
-							<dictionary>
-								<string> "distance" </string>
-								<real> 4 </real>
-								<string> "default_light" </string>
-								<bool> True </bool>
-								<string> "x_rot" </string>
-								<real> 0.337 </real>
-								<string> "y_rot" </string>
-								<real> -0.575 </real>
-								<string> "show_grid" </string>
-								<bool> True </bool>
-								<string> "show_origin" </string>
-								<bool> True </bool>
-								<string> "pos" </string>
-								<vector3> 0, 0, 0 </vector3>
-							</dictionary>
+							<string> "show_grid" </string>
+							<bool> True </bool>
+							<string> "show_origin" </string>
+							<bool> True </bool>
+							<string> "viewport_mode" </string>
+							<int> 1 </int>
+							<string> "viewports" </string>
+							<array  len="4" shared="false">
+								<dictionary  shared="false">
+									<string> "distance" </string>
+									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> True </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
+									<string> "x_rot" </string>
+									<real> 0 </real>
+									<string> "y_rot" </string>
+									<real> 0 </real>
+								</dictionary>
+								<dictionary  shared="false">
+									<string> "distance" </string>
+									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
+									<string> "x_rot" </string>
+									<real> 0 </real>
+									<string> "y_rot" </string>
+									<real> 0 </real>
+								</dictionary>
+								<dictionary  shared="false">
+									<string> "distance" </string>
+									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
+									<string> "x_rot" </string>
+									<real> 0 </real>
+									<string> "y_rot" </string>
+									<real> 0 </real>
+								</dictionary>
+								<dictionary  shared="false">
+									<string> "distance" </string>
+									<real> 4 </real>
+									<string> "listener" </string>
+									<bool> False </bool>
+									<string> "pos" </string>
+									<vector3> 0, 0, 0 </vector3>
+									<string> "use_environment" </string>
+									<bool> False </bool>
+									<string> "use_orthogonal" </string>
+									<bool> False </bool>
+									<string> "x_rot" </string>
+									<real> 0 </real>
+									<string> "y_rot" </string>
+									<real> 0 </real>
+								</dictionary>
+							</array>
+							<string> "zfar" </string>
+							<real> 500 </real>
 							<string> "znear" </string>
 							<real> 0.1 </real>
 						</dictionary>
+						<string> "Anim" </string>
+						<dictionary  shared="false">
+							<string> "visible" </string>
+							<bool> False </bool>
+						</dictionary>
 					</dictionary>
 					<string> "__editor_run_settings__" </string>
-					<dictionary>
+					<dictionary  shared="false">
 						<string> "custom_args" </string>
 						<string> "-l $scene" </string>
 						<string> "run_mode" </string>
 						<int> 0 </int>
 					</dictionary>
-					<string> "__editor_plugin_screen__" </string>
-					<string> "2D" </string>
 				</dictionary>
-				<resource  resource_type="Texture" path="res://art/seesaw_base.png">  </resource>
-				<int> 1 </int>
-				<color> 1, 1, 1, 1 </color>
-				<rect2> 0, 0, 0, 0 </rect2>
-				<resource  resource_type="ConcavePolygonShape2D" path="local://1">  </resource>
+				<resource  external="0">  </resource>
+				<bool> False </bool>
+				<resource  resource_type="Shape2D" path="local://1">  </resource>
 				<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+				<int> 1 </int>
+				<vector2> 0, 0 </vector2>
+				<real> 0 </real>
+				<real> 1 </real>
+				<int> 0 </int>
 				<vector2_array  len="3"> 					-32.6231, 32.0838, -1.28218, -31.1383, 33.8412, 33.1645 </vector2_array>
+				<vector2> -1, -1 </vector2>
 				<vector2> 1.19748, -29.9368 </vector2>
 				<real> 16.223282 </real>
-				<resource  resource_type="ConvexPolygonShape2D" path="local://2">  </resource>
+				<resource  resource_type="Shape2D" path="local://2">  </resource>
+				<bool> True </bool>
+				<real> -1 </real>
 				<vector2> 1, 0.5 </vector2>
-				<resource  resource_type="Texture" path="res://art/seesaw_top.png">  </resource>
+				<resource  external="1">  </resource>
 				<vector2_array  len="4"> 					-125.025, -8.98358, 125.162, -8.44321, 99.2248, 7.22723, -99.0874, 7.76759 </vector2_array>
 				<vector2> 0, -31.1343 </vector2>
 				<node_path> "../RigidBody2D" </node_path>
 				<node_path> "../Sprite/StaticBody2D" </node_path>
 			</array>
-			<string> "nodes" </string>
-			<int_array  len="414"> 				-1, -1, 1, 0, -1, 17, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 6, 17, 7, 18, 8, 0, 0, 0, 19, 19, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 6, 20, 9, 21, 2, 22, 4, 23, 0, 24, 0, 25, 10, 26, 10, 27, 1, 28, 11, 29, 0, 30, 12, 17, 7, 0, 1, 0, 31, 31, -1, 22, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 32, 10, 33, 13, 34, 14, 35, 0, 36, 4, 37, 5, 17, 7, 0, 2, 0, 38, 38, -1, 18, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 39, 1, 40, 15, 17, 7, 0, 0, 0, 41, 41, -1, 31, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 16, 15, 17, 16, 6, 32, 10, 33, 18, 34, 14, 42, 1, 43, 3, 44, 3, 45, 5, 46, 0, 47, 0, 48, 1, 49, 0, 50, 2, 51, 2, 52, 4, 53, 5, 17, 7, 0, 4, 0, 19, 19, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 19, 20, 20, 21, 2, 22, 4, 23, 0, 24, 0, 25, 10, 26, 10, 27, 1, 28, 11, 29, 0, 30, 12, 17, 7, 0, 4, 0, 38, 38, -1, 18, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 39, 1, 40, 21, 17, 7, 0, 0, 0, 54, 54, -1, 19, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 22, 15, 5, 16, 6, 55, 23, 56, 24, 57, 5, 17, 7, 0 </int_array>
-			<string> "conns" </string>
-			<int_array  len="0"> 				 </int_array>
+			<string> "version" </string>
+			<int> 2 </int>
 		</dictionary>
-		<resource name="script/script"></resource>
+
 	</main_resource>
 </resource_file>

+ 6 - 13
demos/2d/screen_space_shaders/screen_shaders.gd

@@ -1,32 +1,25 @@
 
 extends Control
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
 
 func _ready():
-	# Initialization here
 	for c in get_node("pictures").get_children():
-		get_node("picture").add_item("PIC: "+c.get_name())
+		get_node("picture").add_item("PIC: " + c.get_name())
 	for c in get_node("effects").get_children():
-		get_node("effect").add_item("FX: "+c.get_name())
-	pass
+		get_node("effect").add_item("FX: " + c.get_name())
 
 
-
-
-func _on_picture_item_selected( ID ):
+func _on_picture_item_selected(ID):
 	for c in range(get_node("pictures").get_child_count()):
-		if (ID==c):
+		if (ID == c):
 			get_node("pictures").get_child(c).show()
 		else:
 			get_node("pictures").get_child(c).hide()
 
 
-func _on_effect_item_selected( ID ):
+func _on_effect_item_selected(ID):
 	for c in range(get_node("effects").get_child_count()):
-		if (ID==c):
+		if (ID == c):
 			get_node("effects").get_child(c).show()
 		else:
 			get_node("effects").get_child(c).hide()

BIN
demos/2d/screen_space_shaders/screen_shaders.scn


BIN
demos/2d/sdf_font/sdf.scn


+ 27 - 32
demos/2d/shower_of_bullets/bullets.gd

@@ -4,73 +4,68 @@ extends Node2D
 # This demo is an example of controling a high number of 2D objects with logic and collision without using scene nodes.
 # This technique is a lot more efficient than using instancing and nodes, but requires more programming and is less visual
 
+# Member variables
 const BULLET_COUNT = 500
 const SPEED_MIN = 20
 const SPEED_MAX = 50
 
-var bullets=[]
+var bullets = []
 var shape
 
+
+# Inner classes
 class Bullet:
 	var pos = Vector2()
 	var speed = 1.0
 	var body = RID()
-	
 
-func _draw():
 
+func _draw():
 	var t = preload("res://bullet.png")
 	var tofs = -t.get_size()*0.5
 	for b in bullets:
-		draw_texture(t,b.pos+tofs)	
-		
-	
+		draw_texture(t, b.pos + tofs)
+
+
 func _process(delta):
 	var width = get_viewport_rect().size.x*2.0
 	var mat = Matrix32()
 	for b in bullets:
-		b.pos.x-=b.speed*delta
+		b.pos.x -= b.speed*delta
 		if (b.pos.x < -30):
-			b.pos.x+=width
-		mat.o=b.pos		
-		
-		Physics2DServer.body_set_state(b.body,Physics2DServer.BODY_STATE_TRANSFORM,mat)
+			b.pos.x += width
+		mat.o = b.pos
 		
+		Physics2DServer.body_set_state(b.body, Physics2DServer.BODY_STATE_TRANSFORM, mat)
+	
 	update()
-		
-			
-func _ready():
 
-	shape = Physics2DServer.shape_create(Physics2DServer.SHAPE_CIRCLE)
-	Physics2DServer.shape_set_data(shape,8) #radius
 
+func _ready():
+	shape = Physics2DServer.shape_create(Physics2DServer.SHAPE_CIRCLE)
+	Physics2DServer.shape_set_data(shape, 8) # Radius
+	
 	for i in range(BULLET_COUNT):
 		var b = Bullet.new()
-		b.speed=rand_range(SPEED_MIN,SPEED_MAX)
+		b.speed = rand_range(SPEED_MIN, SPEED_MAX)
 		b.body = Physics2DServer.body_create(Physics2DServer.BODY_MODE_KINEMATIC)
-		Physics2DServer.body_set_space(b.body,get_world_2d().get_space())
-		Physics2DServer.body_add_shape(b.body,shape)
+		Physics2DServer.body_set_space(b.body, get_world_2d().get_space())
+		Physics2DServer.body_add_shape(b.body, shape)
 		
-		b.pos = Vector2( get_viewport_rect().size * Vector2(randf()*2.0,randf()) ) #twice as long
-		b.pos.x += get_viewport_rect().size.x # start outside
+		b.pos = Vector2(get_viewport_rect().size * Vector2(randf()*2.0, randf())) # Twice as long
+		b.pos.x += get_viewport_rect().size.x # Start outside
 		var mat = Matrix32()
-		mat.o=b.pos
-		Physics2DServer.body_set_state(b.body,Physics2DServer.BODY_STATE_TRANSFORM,mat)
+		mat.o = b.pos
+		Physics2DServer.body_set_state(b.body, Physics2DServer.BODY_STATE_TRANSFORM, mat)
 		
 		bullets.append(b)
-		
-		
-	set_process(true)
-		
 	
+	set_process(true)
+
+
 func _exit_tree():
 	for b in bullets:
 		Physics2DServer.free_rid(b.body)
 	
 	Physics2DServer.free_rid(shape)
-	# Initalization here
 	bullets.clear()
-	
-	pass
-
-

+ 11 - 18
demos/2d/shower_of_bullets/shower.gd

@@ -1,32 +1,25 @@
 
 extends Node2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
+var touching = 0
 
-var touching=0
+func _input(event):
+	if (event.type == InputEvent.MOUSE_MOTION):
+		get_node("player").set_pos(event.pos - Vector2(0, 16))
 
-func _input(ev):
 
-	if (ev.type==InputEvent.MOUSE_MOTION):
-		get_node("player").set_pos(ev.pos-Vector2(0,16))
-
-
-func _on_player_body_enter_shape( body_id, body, body_shape, area_shape ):
-
-	touching+=1
-	if (touching==1):
+func _on_player_body_enter_shape(body_id, body, body_shape, area_shape):
+	touching += 1
+	if (touching == 1):
 		get_node("player/sprite").set_frame(1)
 
 
-func _on_player_body_exit_shape( body_id, body, body_shape, area_shape ):
-
-	touching-=1
-	if (touching==0):
+func _on_player_body_exit_shape(body_id, body, body_shape, area_shape):
+	touching -= 1
+	if (touching == 0):
 		get_node("player/sprite").set_frame(0)
 
 
 func _ready():
 	set_process_input(true)
-	pass

BIN
demos/2d/shower_of_bullets/shower.scn


+ 18 - 24
demos/2d/space_shooter/asteroid.gd

@@ -1,49 +1,43 @@
 
 extends Area2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
+const SPEED = -200
+const Y_RANDOM = 10
 
-const SPEED=-200
-const Y_RANDOM=10
+var points = 1
+var speed_y = 0.0
+var destroyed = false
 
-var points=1
-
-
-var speed_y=0.0
 
 func _process(delta):
+	translate(Vector2(SPEED, speed_y)*delta)
 
-	translate( Vector2(SPEED,speed_y) * delta )
 
 func _ready():
-	# Initialization here	
-	speed_y=rand_range(-Y_RANDOM,Y_RANDOM)
-	pass
+	speed_y = rand_range(-Y_RANDOM, Y_RANDOM)
 
-var destroyed=false
 
 func destroy():
 	if (destroyed):
-		return	
-	destroyed=true
+		return
+	destroyed = true
 	get_node("anim").play("explode")
 	set_process(false)
 	get_node("sfx").play("sound_explode")
-	#accum points
-	get_node("/root/game_state").points+=1
-	
+	# Accumulate points
+	get_node("/root/game_state").points += 1
+
+
 func is_enemy():
-	return not destroyed	
-	
+	return not destroyed
+
 
 func _on_visibility_enter_screen():
 	set_process(true)
-	#make it spin!
+	# Make it spin!
 	get_node("anim").play("spin")
-	
+
 
 func _on_visibility_exit_screen():
 	queue_free()
-	pass # replace with function body

BIN
demos/2d/space_shooter/asteroid.scn


+ 14 - 15
demos/2d/space_shooter/enemy1.gd

@@ -1,17 +1,15 @@
 
 extends Area2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
+const SPEED = -200
+
+var destroyed=false
 
-const SPEED=-200
 
 func _process(delta):
-	get_parent().translate(Vector2(SPEED*delta,0))
+	get_parent().translate(Vector2(SPEED*delta, 0))
 
-	
-var destroyed=false
 
 func is_enemy():
 	return not destroyed
@@ -19,19 +17,20 @@ func is_enemy():
 
 func destroy():
 	if (destroyed):
-		return	
-	destroyed=true
+		return
+	destroyed = true
 	get_node("anim").play("explode")
-	set_process(false)	
+	set_process(false)
 	get_node("sfx").play("sound_explode")
-	#accum points
-	get_node("/root/game_state").points+=5
+	# Accumulate points
+	get_node("/root/game_state").points += 5
+
 
 func _on_visibility_enter_screen():
 	set_process(true)
-	get_node("anim").play("zigzag")	
-	get_node("anim").seek(randf()*2.0) #make it start from any pos
+	get_node("anim").play("zigzag")
+	get_node("anim").seek(randf()*2.0) # Make it start from any pos
+
 
 func _on_visibility_exit_screen():
 	queue_free()
-	

BIN
demos/2d/space_shooter/enemy1.scn


+ 23 - 28
demos/2d/space_shooter/enemy2.gd

@@ -1,56 +1,51 @@
 
 extends Area2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
-const SPEED=-220
-const SHOOT_INTERVAL=1
-var shoot_timeout=0
+# Member variables
+const SPEED = -220
+const SHOOT_INTERVAL = 1
+
+var shoot_timeout = 0
+var destroyed=false
+
 
 func _process(delta):
-	translate( Vector2(SPEED*delta,0) )
-	shoot_timeout-=delta
+	translate(Vector2(SPEED*delta, 0))
+	shoot_timeout -= delta
 	
-	if (shoot_timeout<0):
-	
-		shoot_timeout=SHOOT_INTERVAL
+	if (shoot_timeout < 0):
+		shoot_timeout = SHOOT_INTERVAL
 		
-		#instance a shot
+		# Instance a shot
 		var shot = preload("res://enemy_shot.scn").instance()
-		#set pos as "shoot_from" Position2D node
-		shot.set_pos( get_node("shoot_from").get_global_pos() )
-		#add it to parent, so it has world coordinates
+		# Set pos as "shoot_from" Position2D node
+		shot.set_pos(get_node("shoot_from").get_global_pos())
+		# Add it to parent, so it has world coordinates
 		get_parent().add_child(shot)
-		
-var destroyed=false
+
 
 func is_enemy():
 	return not destroyed
 
+
 func destroy():
 	if (destroyed):
-		return	
-	destroyed=true
+		return
+	destroyed = true
 	get_node("anim").play("explode")
-	set_process(false)	
+	set_process(false)
 	get_node("sfx").play("sound_explode")
-	#accum points
-	get_node("/root/game_state").points+=10
+	# Accumulate points
+	get_node("/root/game_state").points += 10
+
 
 func _ready():
 	set_fixed_process(true)
-	# Initialization here
-	pass
-
-
 
 
 func _on_visibility_enter_screen():
 	set_process(true)
-	pass # replace with function body
 
 
 func _on_visibility_exit_screen():
 	queue_free()
-	pass # replace with function body

BIN
demos/2d/space_shooter/enemy2.scn


+ 9 - 10
demos/2d/space_shooter/enemy_shot.gd

@@ -1,32 +1,31 @@
 
 extends Area2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
 const SPEED = -800
 
+var hit = false
+
+
 func _process(delta):
-	translate(Vector2(delta*SPEED,0))
+	translate(Vector2(delta*SPEED, 0))
+
 
 func _ready():
-	# Initialization here
 	set_process(true)
 
 
-var hit=false
-
 func is_enemy():
 	return true
 
+
 func _hit_something():
 	if (hit):
 		return
-	hit=true
+	hit = true
 	set_process(false)
 	get_node("anim").play("splash")
 
+
 func _on_visibility_exit_screen():
 	queue_free()
-	

BIN
demos/2d/space_shooter/enemy_shot.scn


BIN
demos/2d/space_shooter/explosion.scn


+ 9 - 11
demos/2d/space_shooter/game_state.gd

@@ -1,24 +1,22 @@
-extends Node
 
+extends Node
 
+# Member variables
 var points = 0
 var max_points = 0
 
 
 func _ready():
 	var f = File.new()
-	#load high score
-	
-	if (f.open("user://highscore",File.READ)==OK):
-		
-		max_points=f.get_var()
+	# Load high score
+	if (f.open("user://highscore", File.READ) == OK):
+		max_points = f.get_var()
 
 
 func game_over():
-	if (points>max_points):
-		max_points=points
-		#save high score
+	if (points > max_points):
+		max_points = points
+		# Save high score
 		var f = File.new()
-		f.open("user://highscore",File.WRITE)
+		f.open("user://highscore", File.WRITE)
 		f.store_var(max_points)
-		

BIN
demos/2d/space_shooter/level.scn


BIN
demos/2d/space_shooter/level_tiles.scn


+ 2 - 11
demos/2d/space_shooter/main_menu.gd

@@ -1,20 +1,11 @@
 
 extends Control
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
 
 func _ready():
-
-	get_node("score").set_text( "HIGH SCORE: "+str( get_node("/root/game_state").max_points ) )
-	# Initialization here
-	pass
-
-
+	get_node("score").set_text("HIGH SCORE: " + str(get_node("/root/game_state").max_points))
 
 
 func _on_play_pressed():
-	get_node("/root/game_state").points=0
+	get_node("/root/game_state").points = 0
 	get_tree().change_scene("res://level.scn")
-	pass # replace with function body

BIN
demos/2d/space_shooter/main_menu.scn


BIN
demos/2d/space_shooter/parallax.scn


+ 6 - 12
demos/2d/space_shooter/rail.gd

@@ -1,25 +1,19 @@
 
 extends Node2D
 
+# Member variables
+const SPEED = 200
+var offset = 0
 
-const SPEED=200
-# member variables here, example:
-# var a=2
-# var b="textvar"
 
 func stop():
 	set_process(false)
 
-var offset=0
-
 
 func _process(delta):
-	offset+=delta*SPEED
-	set_pos(Vector2(offset,0))
+	offset += delta*SPEED
+	set_pos(Vector2(offset, 0))
+
 
 func _ready():
 	set_process(true)
-	# Initialization here
-	
-
-

+ 29 - 36
demos/2d/space_shooter/ship.gd

@@ -1,71 +1,65 @@
 
 extends Area2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
 const SPEED = 200
 
 var screen_size
+var prev_shooting = false
+var killed = false
 
-var prev_shooting=false
 
 func _process(delta):
-
 	var motion = Vector2()
 	if Input.is_action_pressed("move_up"):
-		motion+=Vector2(0,-1)
+		motion += Vector2(0, -1)
 	if Input.is_action_pressed("move_down"):
-		motion+=Vector2(0,1)
+		motion += Vector2(0, 1)
 	if Input.is_action_pressed("move_left"):
-		motion+=Vector2(-1,0)
+		motion += Vector2(-1, 0)
 	if Input.is_action_pressed("move_right"):
-		motion+=Vector2(1,0)
+		motion += Vector2(1, 0)
 	var shooting = Input.is_action_pressed("shoot")
-		
+	
 	var pos = get_pos()
 	
-	pos+=motion*delta*SPEED
-	if (pos.x<0):
-		pos.x=0
-	if (pos.x>screen_size.x):
-		pos.x=screen_size.x
-	if (pos.y<0):
-		pos.y=0
-	if (pos.y>screen_size.y):
-		pos.y=screen_size.y
-
+	pos += motion*delta*SPEED
+	if (pos.x < 0):
+		pos.x = 0
+	if (pos.x > screen_size.x):
+		pos.x = screen_size.x
+	if (pos.y < 0):
+		pos.y = 0
+	if (pos.y > screen_size.y):
+		pos.y = screen_size.y
+	
 	set_pos(pos)
 	
 	if (shooting and not prev_shooting):
-		# just pressed
+		# Just pressed
 		var shot = preload("res://shot.scn").instance()
-		#use the position3d as reference
-		shot.set_pos( get_node("shootfrom").get_global_pos() )
-		#put it two parents above, so it is not moved by us
+		# Use the Position2D as reference
+		shot.set_pos(get_node("shootfrom").get_global_pos())
+		# Put it two parents above, so it is not moved by us
 		get_node("../..").add_child(shot)
-		#play sound
+		# Play sound
 		get_node("sfx").play("shoot")
-		
 	
 	prev_shooting = shooting
+	
+	# Update points counter
+	get_node("../hud/score_points").set_text(str(get_node("/root/game_state").points))
 
-	#update points counter
-	get_node("../hud/score_points").set_text( str(get_node("/root/game_state").points) )
 
 func _ready():
-	# Initialization here
 	screen_size = get_viewport().get_rect().size
 	set_process(true)
-	pass
 
-var killed=false
 
 func _hit_something():
 	if (killed):
 		return
-	killed=true
+	killed = true
 	get_node("anim").play("explode")
 	get_node("sfx").play("sound_explode")
 	get_node("../hud/game_over").show()
@@ -74,15 +68,14 @@ func _hit_something():
 	set_process(false)
 
 
-func _on_ship_body_enter( body ):
+func _on_ship_body_enter(body):
 	_hit_something()
 
 
-func _on_ship_area_enter( area ):
+func _on_ship_area_enter(area):
 	if (area.has_method("is_enemy") and area.is_enemy()):
 		_hit_something()
 
 
 func _on_back_to_menu_pressed():
 	get_tree().change_scene("res://main_menu.scn")
-	pass # replace with function body

BIN
demos/2d/space_shooter/ship.scn


+ 13 - 21
demos/2d/space_shooter/shot.gd

@@ -1,48 +1,40 @@
 
 extends Area2D
 
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
 const SPEED = 800
 
+var hit = false
+
+
 func _process(delta):
-	translate(Vector2(delta*SPEED,0))
+	translate(Vector2(delta*SPEED, 0))
+
 
 func _ready():
-	# Initialization here
 	set_process(true)
-	pass
 
-var hit=false
 
 func _hit_something():
 	if (hit):
 		return
-	hit=true
+	hit = true
 	set_process(false)
 	get_node("anim").play("splash")
 
+
 func _on_visibility_exit_screen():
 	queue_free()
-	pass # replace with function body
-
 
 
-func _on_shot_area_enter( area ):
-	#hit an enemy or asteroid
+func _on_shot_area_enter(area):
+	# Hit an enemy or asteroid
 	if (area.has_method("destroy")):
-		#duck typing at it's best
+		# Duck typing at it's best
 		area.destroy()
 		_hit_something()
-	
-	
-	pass 
 
 
-func _on_shot_body_enter( body ):
-	#hit the tilemap
+func _on_shot_body_enter(body):
+	# Hit the tilemap
 	_hit_something()
-	pass # replace with function body
-

BIN
demos/2d/space_shooter/shot.scn


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 172 - 161
demos/2d/splash/splash.xml


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно