diff options
| author | santiagopf <punto@Ariels-Mac-mini.local> | 2015-12-14 10:58:26 -0300 |
|---|---|---|
| committer | santiagopf <punto@Ariels-Mac-mini.local> | 2015-12-14 10:58:26 -0300 |
| commit | a9795d582665598decd4e73e1d879c83ce28a44b (patch) | |
| tree | 777a3da33fed3d6906704680e01bd87f97eba113 /demos/misc/autoload | |
| parent | c8077de71475c174aa14fd045a2cddfc28de2468 (diff) | |
| parent | bfaa179e7088d9d6f4cf289e1915eec12c6b3b2a (diff) | |
Merge branch 'master' of https://github.com/godotengine/godot
Diffstat (limited to 'demos/misc/autoload')
| -rw-r--r-- | demos/misc/autoload/global.gd | 27 | ||||
| -rw-r--r-- | demos/misc/autoload/scene_a.gd | 11 | ||||
| -rw-r--r-- | demos/misc/autoload/scene_b.gd | 11 |
3 files changed, 13 insertions, 36 deletions
diff --git a/demos/misc/autoload/global.gd b/demos/misc/autoload/global.gd index 2671b6f412..735995e806 100644 --- a/demos/misc/autoload/global.gd +++ b/demos/misc/autoload/global.gd @@ -1,7 +1,9 @@ extends Node -# Member variables -var current_scene = null + +# Changing scenes is most easily done using the functions `change_scene` +# and `change_scene_to` of the SceneTree. This script demonstrates how to +# change scenes without those helpers. func goto_scene(path): @@ -18,20 +20,17 @@ func goto_scene(path): func _deferred_goto_scene(path): - # Immediately free the current scene, - # there is no risk here. - current_scene.free() + # Immediately free the current scene, there is no risk here. + get_tree().get_current_scene().free() # Load new scene - var s = ResourceLoader.load(path) + var packed_scene = ResourceLoader.load(path) # Instance the new scene - current_scene = s.instance() + var instanced_scene = packed_scene.instance() - # Add it to the active scene, as child of root - get_tree().get_root().add_child(current_scene) - - -func _ready(): - # Get the current scene at the time of initialization - current_scene = get_tree().get_current_scene() + # Add it to the scene tree, as direct child of root + get_tree().get_root().add_child(instanced_scene) + + # Set it as the current scene, only after it has been added to the tree + get_tree().set_current_scene(instanced_scene) diff --git a/demos/misc/autoload/scene_a.gd b/demos/misc/autoload/scene_a.gd index f9c39887b0..03da86d9a0 100644 --- a/demos/misc/autoload/scene_a.gd +++ b/demos/misc/autoload/scene_a.gd @@ -1,16 +1,5 @@ - extends Panel -# Member variables here, example: -# var a=2 -# var b="textvar" - - -func _ready(): - # Initalization here - pass - func _on_goto_scene_pressed(): get_node("/root/global").goto_scene("res://scene_b.scn") - pass # Replace with function body diff --git a/demos/misc/autoload/scene_b.gd b/demos/misc/autoload/scene_b.gd index fdf2287a04..dea8c4623f 100644 --- a/demos/misc/autoload/scene_b.gd +++ b/demos/misc/autoload/scene_b.gd @@ -1,16 +1,5 @@ - extends Panel -# Member variables here, example: -# var a=2 -# var b="textvar" - - -func _ready(): - # Initalization here - pass - func _on_goto_scene_pressed(): get_node("/root/global").goto_scene("res://scene_a.scn") - pass # Replace with function body |