[译]Godot系列教程一 - 场景与节点

简介: 场景(Scene)与节点(Node)简介先设想有那么一瞬间你自己不再是一名游戏开发者了,而是一名大厨!你的装备换成了一套大厨的制服。不要考虑制作游戏的事情,你现在的职责是为你的顾客创建新的可口的食谱。

场景(Scene)与节点(Node)

简介

img_310c21d817476c8d6a0c9af4199f6edc.png

先设想有那么一瞬间你自己不再是一名游戏开发者了,而是一名大厨!
你的装备换成了一套大厨的制服。不要考虑制作游戏的事情,你现在的职责是为你的顾客创建新的可口的食谱。

那么,大厨是怎样创建食谱的呢?食谱分为两部分:首先是食材;然后是工序。这样,任何人都可以根据食谱烹调并品尝到你华丽的创作。

Godot中制作游戏与这个过程非常相似。Godot引擎就像一个厨房,在这个厨房里,节点就像装满新鲜食材的冰箱。

节点有很多种类型,显示图片的、播放声音的、显示三维模型的,等等。总共有几十个。

节点

让我们从基础谈起。节点是创建游戏的最基础的元素,它具有以下一些特征:

  • 名称
  • 可编辑的属性
  • 能接收回调,以便处理每帧(Frame)相关效果
  • 可以被扩展,以便拥有更多功能
  • 可以被添加为其它节点的子节点

img_da3d75e9ca67b9f85069992caff0ada6.png

最后一点非常重要:节点能让其它节点作为子节点。这样组合出来,就变成了我们常说的状。

Godot中这种树状组织能力创建了一种强大的项目管理工具。由于不同的节点有不同的功能,通过组合它们就足以创建更复杂的功能。

这样讲你肯定还没有什么感觉,但Godot所有的知识点都与上面这些特征有关,你现在只要记住有节点这么个概念,并且节点能按树状组合就好了。

场景

img_0512386935c9c01f7df7cf215b8ae818.png

有了节点的概念后,下一步就是要给你解释什么是场景了。

场景就是由一组按树状层级结构组织的节点组成。它有下列属性:

  • 一个场景只有一个根节点
  • 场景可以被保存到硬盘上并被加载回来
  • 场景可被实例化 (稍后会有更多描述)
  • 运行一款游戏意味着在运行一个场景
  • 一个项目中可以有多个场景,但启动时必须指定其中一个用于初始加载的场景

Godot编辑器其实就是一个场景编辑器。它有丰富的用于编辑二维和三维场景的相关工具,这些工具都是围绕编辑节点和场景的概念的。

创建项目

光讲理论很无聊了吧,那让我们来点实践性的:用编辑器来做个“Hello world”。

当没有启动具体项目时,Godot会打开项目管理器,用于帮助开发者管理项目。

img_576a9b6e0a5b59a65bf8b6522170de27.png

点"New Project"创建新项目,这个时候需要选择项目路径并指定项目名称:

img_a019f7ec7a12a6b74990d34e45f2281d.png

编辑器

创建好新项目后,下一步就是打开它,这样就启动了Godot编辑器。编辑器的效果大致是这样:

img_1d2f142084716a1d0bd26b0547d660ed.png

上面提过,在Godot中制作游戏就像到了厨房,先打开冰箱,然后添加一些新鲜的节点到项目中。让我们开始“Hello World”吧,点击"New Node"按钮:

img_cb1e94d5b4dad2b1cd5ff7cb91825844.png

打开“Create Node”对话框,界面显示了一长列可用节点吧:

img_38fd6b8113e083738124b4c31c01006d.png

先选择“Label”节点,可以在上方快速搜索:

img_398fe3bc5f8a092beef5122dd2b09119.png

最后,创建标签!“Create”按钮被点击后,会发生很多事情:

img_6cdf5c791f0bab4e3f8ac58c53b5869d.png

首先,场景变成2D编辑器,因为Label是个二维节点,Label会出现Viewpoint左上角、被选中状态。

同时,该节点出现在Scene树编辑器,标签属性则出现在Inspector。

下面,我们来修改该标签的“Text”属性,改成"Hello, World!":

img_641f5857ccd2b9366ff8cf01c553d831.png

好了,这样就可以运行场景了!点击顶部栏的播放场景的按钮或按F6:

img_ba7e1d13450f55ea3ac472c75c8cbcf8.png

哎呀...

img_50d2491f47cdbc1519fd9bcd8126f747.png

提示场景需要保存了才能运行;保存场景,文件名比如叫做 hello.scn:

img_0dcdd8c313cfb3df16f6b1cc6ecff665.png

该场景只允许保存在该项目中。项目的根 "res://" 代表资源路径。

保存场景后再点“运行场景”,“Hello, World!”这个demo应该就开始执行了:

img_973035ce832958e8820e3fa3005c77d2.png

搞定!

.. _doc_scenes_and_nodes-configuring_the_project:

配置项目

项目中,如果有多个场景,必须指定一个主场景 - 在运行时初始被载入的。

这些设置都被保存在engine.cfg中,这是一种win.ini这样的纯文本格式,编辑起来很简单。因为项目设置项很多,所以可以通过“项目设置”对话框来直观操作。

通过菜单Scene -> Project Settings可以访问该对话框。

该窗口被打开时,要选择主场景,很简单,切换到application/main_scene属性,选择'hello.scn'即可。

img_ed391db29f41b73ed3456bfeca08257a.png

完成设置后,点“运行按钮”或F5键会开始运行该项目。

再打开项目设置对话框,其中显示了很多可用选项及默认值。如果默认值没问题的话就不需要动它。

当其中一项值被改动,其名称左侧会出现一个标记,代表该值将会保存到engine.cfg文件中。

其实还可以添加自定义配置选项并在运行时被读入
:ref:Globals <class_Globals> 单例对象中.

未完待续...

下一节会涉及多个场景及多个节点!

原文:http://docs.godotengine.org/en/latest/tutorials/step_by_step/scenes_and_nodes.html

目录
相关文章
|
1天前
|
存储 算法 搜索推荐
Python高手必备!揭秘图(Graph)的N种风骚表示法,让你的代码瞬间高大上
在Python中,图作为重要的数据结构,广泛应用于社交网络分析、路径查找等领域。本文介绍四种图的表示方法:邻接矩阵、邻接表、边列表和邻接集。每种方法都有其特点和适用场景,掌握它们能提升代码效率和可读性,让你在项目中脱颖而出。
13 5
|
6月前
|
机器学习/深度学习 存储 算法
【一起撸个DL框架】2 节点与计算图的搭建
2 节点与计算图的搭建 🍒 2.1 简介 上一篇:【一起撸个DL框架】1 绪论 这一节将动手搭建一个简单的“计算图”,并在其上进行计算。
82 0
|
6月前
|
定位技术 API 开发者
【Godot引擎开发】简单基础,外加一个小游戏DEMO
【Godot引擎开发】简单基础,外加一个小游戏DEMO
134 0
|
开发者
CocosCreator3.8研究笔记(七)CocosCreator 节点和组件的介绍
CocosCreator3.8研究笔记(七)CocosCreator 节点和组件的介绍
167 0
|
BI API
CocosCreator3.8研究笔记(八)CocosCreator 节点和组件的使用
CocosCreator3.8研究笔记(八)CocosCreator 节点和组件的使用
454 0
|
存储 索引 容器
灰太狼系列—打地鼠(内含源码) inscode中的直观运行
灰太狼系列—打地鼠(内含源码) inscode中的直观运行
|
Ubuntu 定位技术
4 步 解决如何使用tilestache构建瓦片地图服务器
4 步 解决如何使用tilestache构建瓦片地图服务器
708 0
|
自然语言处理 算法 安全
【算法】1379. 找出克隆二叉树中的相同节点(多语言实现)
给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始树 original 中的目标节点 target。 其中,克隆树 cloned 是原始树 original 的一个 副本 。 请找出在树 cloned 中,与 target 相同 的节点,并返回对该节点的引用(在 C/C++ 等有指针的语言中返回 节点指针,其他语言返回节点本身)。
【算法】1379. 找出克隆二叉树中的相同节点(多语言实现)
|
vr&ar 图形学
【Unity3D 灵巧小知识点】 ☀️ | 快速找到工程中挂载某个脚本的游戏对象
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。
【Unity3D 灵巧小知识点】 ☀️ | 快速找到工程中挂载某个脚本的游戏对象
|
Python
Python 自动化-pywinauto库定位树结构控件里的树节点实例演示
Python 自动化-pywinauto库定位树结构控件里的树节点实例演示
626 0
Python 自动化-pywinauto库定位树结构控件里的树节点实例演示