diff --git a/tutorial_scene_main_loop.md b/tutorial_scene_main_loop.md index 13b4c5b..70b1553 100644 --- a/tutorial_scene_main_loop.md +++ b/tutorial_scene_main_loop.md @@ -3,7 +3,7 @@ ### Introduction This is where things start getting abstract, but don't panic, as there's not really more depth than this. -In previous tutorials, everything revolves around the concept of Nodes, scenes are made of them, and they become active once they enter the active scene. +In previous tutorials, everything revolves around the concept of Nodes, scenes are made of them, and they become active once they enter the _Scene Tree_. This deserves going a little more into depth. In fact, the scene system is not even a core component of Godot, as it is possible to skip it and make a script (or C++ code) that talks directly to the [Servers](tutorial_servers). But making a game that way would be a lot of work and is reserved for other uses. @@ -19,16 +19,16 @@ The user program, or game, starts in the MainLoop. This class has a few methods, One of the ways to explain how Godot works, is that it's a high level game engine over a low level middleware. The scene system is the game engine, while the [OS](class_os) and servers are the low level API. -In any case, the scene system provides it's own main loop to OS, [SceneTree](class_scenemainloop). +In any case, the scene system provides it's own main loop to OS, [SceneTree](class_scenetree). This is automatically instanced and set when running a scene, no need to do any extra work. It's important to know that this class exists because it has a few important uses: -* It contains the root [Viewport](class_viewport), when a scene is first opened, it's added as a child of it to become part of the active scene (more on that next) +* It contains the root [Viewport](class_viewport), when a scene is first opened, it's added as a child of it to become part of the _Scene Tree_ (more on that next) * It contains information about the groups, and has means to call all nodes in a group, or get a list of them. * It contains some global state functionality, such as setting pause mode, or quitting the process. -When a node is part of the active scene, the [SceneTree](class_scenemainloop) can be obtained by simply calling [Node.get_tree](class_node#get_tree)(). +When a node is part of the Scene Tree, the [SceneTree](class_scenemainloop) singleton can be obtained by simply calling [Node.get_tree](class_node#get_tree)(). ### Root Viewport @@ -43,14 +43,14 @@ This node contains the main viewport, anything that is a child of a [Viewport](c While other viewports can be created in the scene (for split-screen effects and such), this one is the only one that is never created by the user. It's created automatically inside SceneTree. -### Active Scene +### Scene Tree -When a node is connected, directly or indirectly, to the root viewport, it becomes part of the active scene. +When a node is connected, directly or indirectly, to the root viewport, it becomes part of the _Scene Tree_. This means that, as explained in previous tutorials, will get the _enter_scene() and _ready() callbacks (as well as _exit_scene()).

-When nodes become active (inside the scene), they get access to everything they need to process, get input, display 2D and 3D, notifications, play sound, groups, etc. When they are removed from the active scene, they lose it. +When nodes enter the _Scene Tree_, they become active. They get access to everything they need to process, get input, display 2D and 3D, notifications, play sound, groups, etc. When they are removed from the _Scene Tree_, they lose it. ### Tree Order @@ -58,13 +58,13 @@ Most node operations in Godot, such as drawing 2D, processing or getting notific

-### "Becoming Active" In Detail +### "Becoming Active" by entering the _Scene Tree_ In Detail 1. A scene is loaded from disk or created by scripting. 2. The root node of that scene (only one root, remember?) is added as either a child of the “root” Viewport (from SceneTree), or to any child or grand-child of it. 3. Every node of the newly added scene, will receive the “enter_scene” notification ( _enter_scene() callback in GDScript) in top-to-bottom order. 4. An extra notification, “ready” ( _ready() callback in GDScript) is provided for convenience, when a node and all it’s children are inside the active scene. - 5. When a scene (or part of it) is removed, they receive the “exit scene” rotification ( _exit_scene() callback in GDScript) in bottom-to-top order + 5. When a scene (or part of it) is removed, they receive the “exit scene” notification ( _exit_scene() callback in GDScript) in bottom-to-top order