在Godot中,一个游戏的启动大致流程如下:

  简而言之,Godot的main启动一个进程,加载所需的驱动设备(如渲染设备:GL/GLES/Vulkan等)、音频设备,输入控制器设备等等;然后进入主循环,加载一个自动创建的对象——SceneTree(场景管理系统对象,它用户管理场景图),这个对象包含一个RootViewPort节点(它是一个Node),该节点包含一个默认的ViewPort(以便提供默认渲染的输出视口)。

  然后,每当用户用Godot编辑器创建一个关卡(或场景文件),并设置默认的启动的场景文件,Godot将该场景文件的根节点附加到RootViewPort节点上,当节点进入场景树(SceneTree),变为活动状态。按场景树顺序依次回调各个子节点的_init(),_ready()等声明函数。

  从一个场景切换为另一个场景,根unity3D差不多,提供了两个方式:

1 get_tree().change_scene("res://levels/level2.tscn")

  或

var next_scene = preload("res://levels/level2.tscn")
get_tree().change_scene_to(next_scene)

  其中,第二种方式比较适合预先加载资源缓存到内存或gpu缓存中,然后在不同关卡之间来回切换;而第一种比较适合只需要一次场景切换而不需要来回切换的情况。

Godot的场景树的更多相关文章

  1. Cocos2d-JS场景树

    场景树概念(Scene Graph) 场景树是Cocos2d-JS中用来管理场景中所有元素的一个数据结构,场景树之所以被称为一棵树是因为它将一个场景的所有子结点以树状图的形式组织在一起. Cocos2 ...

  2. <4>Cocos Creator基本概念(场景树 节点 坐标 组件 )

    1.场景树 Cocos Creator是由一个一个的游戏场景组成,场景是一个树形结构,场景由 有各种层级关系的节点(下一节有具有介绍)组成: 如创建一个HelloWorld的默认项目NewProjec ...

  3. cc.Node—场景树

    对于cc.Node我分了四个模块学习: 1.场景树,2.事件响应,3.坐标系统,4.Action的使用:在此记录经验分享给大家. 场景树 1: creator是由一个一个的游戏场景组成,通过代码逻辑来 ...

  4. [译]Godot系列教程四 - 编写脚本

    编写脚本(Scripting) 简介 关于无需编程即可创建视频游戏的那些工具的谈论有很多.不用学习编程知识对很多独立开发者来说就是一个梦想.这种需求 - 游戏开发者.甚至在很多公司内部,希望对游戏流程 ...

  5. [译]Godot系列教程六 - 简单的二维游戏

    Pong Godot自带的Demo中有大量更复杂的示例,但这款叫"Pong"的游戏可以对2D游戏的基本特性做一个介绍. 静态资源 本文所用到的一些资源文件:http://files ...

  6. 探索未知种族之osg类生物---状态树与渲染树以及节点树之间的关系

    节点树 首先我们来看一个场景构建的实例,并通过它来了解一下“状态节点”StateGraph 和“渲染叶”RenderLeaf 所构成的状态树,“渲染台”RenderStage 和“渲染元”Render ...

  7. 重温数据结构:树 及 Java 实现(转)

    转自:http://blog.csdn.net/u011240877/article/details/53193877 读完本文你将了解到: 什么是树 树的相关术语 根节点父亲节点孩子节点叶子节点如上 ...

  8. 4.GDscript(2)关键字,运算符,字面量

    (来源godot官方文档) 关键词 下面是该语言支持的关键字列表.由于关键字是保留字(令牌),它们不能用作标识符.操作符(如 in , not , and 或 or )以及下面列出的内置类型的名称也是 ...

  9. Egret3D 研究报告(一)初试

    了解的朋友应该知道我最近一直都在鼓吹webgl. 今天有一点时间,加了一个Egret3D的群,就开始了这个坑. 耳听为虚,眼见为实.让我们荡起双桨,一起去刷一下egret 打开姿势 至于以什么姿势打开 ...

  10. OpenGL学习资料汇总

    我学OpenGL的3D编程也有1.2个年头了,走了很多弯路,也算有点收获.现在整理出一些好用的资料如下. NeHe OpenGL教程中文版 地址(http://www.yakergong.net/ne ...

随机推荐

  1. pandas-数据结构转换-纵转横

    如下代码,亲测有效,后面会附上入口以及出口数据结构截图 def test_func(file_path): """ 把pandas数据结构-dataframe,横向的索引 ...

  2. UPPER VSCODE

  3. 才子佳人小说研究.PDF

    书本详情 才子佳人小说研究作者:周建渝著出版社:文史哲出版社时间:1998页数:273ISBN:957549167X ISBN:9789575491673

  4. ServiceEntry与WorkloadEntry

    ServiceEntry: 用于将未能自动添加至网格中的服务,以手形式使得内发 现机制能够访问或路由到这些服务.网格外部的服务       运行于 Kubernetes 上,但却非为 Istio 网格 ...

  5. Springboot打包部署的步骤

    1.配置pom.xml 引入插件 <groupId>com.bostech</groupId> <artifactId>dcs</artifactId> ...

  6. CAD梦想看图手机版20211101更新(手机版CAD软件)

    CAD梦想看图手机版20211101更新(手机版CAD软件)1. 新界面风络2. 增加图块库功能3. 适配Android 114. 修改图块中的,多线义线的线型可能显示不对问题5. 修改图块中套用图块 ...

  7. uniapp改变icon

    <!DOCTYPE html><html lang="zh-CN"> <head> <meta charset="utf-8&q ...

  8. spring 使用@Async注解实现异步调用

    1.先定义一个事件,该类继承 ApplicationEven的抽象类 import org.springframework.context.ApplicationEvent; public class ...

  9. easyui combobox两种不同的数据加载方式

    1.通过http访问加载数据. $('#XXXId').combobox({ url: httpUrl, valueField: 'code', textField: 'name', });2.通过j ...

  10. A Novel Sequential Method to Train Physics Informed Neural Networks for Allen Cahn and Cahn Hilliard Equations

    一种新的顺序方法去求解关于时间的方程.个人感觉论文很差.(方法不新颖,写作很无聊,排版也有问题,内容也表述不清). 本文提出一种利用单个神经网络,在连续时间段上顺序求解偏微分方程的新型方案.关键思想是 ...