关于节点和场景
Nodes(节点)是在Godot中创建游戏的基本构建块。节点是可以表示各种专用游戏功能的对象。给定类型的节点可以显示图形,播放动画或表示对象的3D模型。该节点还包含一组属性,允许你自定义其行为。你添加到项目中的节点取决于你需要的功能。它是一个模块化系统,旨在为你提供构建游戏对象的灵活性。
在项目中,你添加的节点将组织为树结构。在树中,节点被添加为其他节点的子节点。特定节点可以具有任意数量的子节点,但只能有一个父节点。当一组节点被添加到树中时,它被称为sence(场景),树被称为sence tree(场景树):
场景树Godot中的场景通常用于创建和组织项目中的各种游戏对象。你可能拥有一个玩家场景,其中包含使玩家角色工作的所有节点和脚本。然后,你可以创建另一个定义游戏地图的场景:玩家必须通过的障碍物和物品。然后,你可以使用实例化将这些不同的场景组合到最终游戏中,稍后你将学习。
虽然节点具有各种属性和功能,但通过将script(脚本)附加到节点,也可以扩展任何节点的行为和功能。这允许你编写使节点在其默认状态下执行更多操作的代码。例如,你可以向场景添加sprite(精灵)节点以显示图像,但如果你希望该图像在单击时移动或消失,则需要添加脚本来创建该行为。
在Godot中编写脚本
在撰写本文时,Godot为脚本节点提供了三种官方语言:GDScript,VisualScript和C#。 GDScript是专用的内置语言,提供与引擎最紧密的集成,并且使用起来最直接。 VisualScript仍然非常新,处于测试阶段,应该避免,直到你对Godot的工作有一个很好的理解。对于大多数项目,C#最适用于具有特定性能需求的游戏部分,大多数Godot项目都不需要这种级别的额外性能。对于那些可以做到的人,Godot可以灵活地在需要的地方使用GDScript和C#的组合。
除了三种支持的脚本语言之外,Godot本身也是用C ++编写的,你可以通过直接扩展引擎的功能来获得更多的性能和控制。有关使用其他语言和扩展引擎的信息,请参见第7章,其他主题。
本书中的所有游戏都使用GDScript。对于大多数项目,GDScript是语言的最佳选择。它与Godot的Application Programming Interface(API)(应用程序编程接口(API))紧密集成,专为快速开发而设计。
关于GDScript
GDScript的语法非常接近Python语言的模型。如果你已熟悉Python,你会发现GDScript非常熟悉。如果你对另一种动态语言(如JavaScript)感到满意,你会发现它相对容易学习。 Python经常被推荐为一种优秀的初学者语言,而GDScript则具有用户友好性。
本书假设你已经拥有至少一些编程经验。如果你以前从未编码,你可能会发现它更难一点。学习游戏引擎本身就是一项艰巨的任务,同时学习编码意味着你已经接受了重大挑战。如果你发现自己正在努力学习本书中的代码,你可能会发现通过介绍性的Python课程将帮助你掌握基础知识。
与Python一样,GDScript是一种动态类型语言,这意味着你在创建变量时不需要声明变量的类型,它使用空格(缩进)来表示代码块。总的来说,将GDScript用于游戏逻辑的结果是你编写的代码更少,这意味着更快的开发和更少的错误修复。
为了让你了解GDScript的外观,这里有一个小脚本,可以让精灵以给定的速度在屏幕上从左向右移动:
extends Sprite
var speed = 200
func _ready():
position = Vector2(100, 100)
func _process(delta):
position.x += speed * delta
if position.x > 500:
position.x = 0
如果这对你没有意义,请不要担心。在接下来的章节中,你将编写大量代码,并附有对它们如何工作的解释。
网友评论