脚本结构

上一节咱们运行了一句代码,但我估计你应该还是比较蒙,这节就来看一下之前那篇代码的每一句话是什么意思。

代码语法之:注释

首先来认识一个最简单的语法,它叫做注释

因为代码本质上还是给计算机看的东西,在逻辑复杂或代码太长时,人类阅读起来非常困难,人们就在代码中穿插加入一些小笔记来解释代码的逻辑和用法,这种小笔记就是注释了。

在 GDScript 中输入一个井号 # 就表示注释,从这个符号开始到这一行结束都属于注释范围,所以再来之前那篇代码,就会发现其中很多东西都是注释(方便理解,我把注释翻译成了中文):

extends Control

# 在节点第一次进入场景树时执行
func _ready():
    pass # 用方法体替换这里

# 每一帧执行一次,'delta' 指上一帧和这一帧的间隔时间
func _process(delta):
    pass

可以看到,Godot 还贴心的留给了我们三句话。。。

[!tip]

注释不会被当作代码执行,如果你给刚才的 print 前面加上 # 号,那么 print 就不会执行了,所以有时遇到了某段代码不确定要不要删除,也可以先用注释的方式临时屏蔽。(虽然规范上不建议这样做,但是一个人开发的情况下老子就是规范)

[!tip]

GDScript 本身不支持多行注释,但可以用多行字符串语法冒充多行注释,语法为三对单引号 '''多行注释1''' 或者三对双引号 """多行注释2""",但不推荐使用,因为这个多行字符串是实际的脚本数据,在导出项目后仍会保留。(不建议各位使用这种语法,但学习他人代码时如果遇到了,希望各位能看懂)

代码语法之:方法

方法这个名称实在是抽象,它还有另一个名称叫做函数,行吧,也比较抽象。。。

你可以把方法理解成一段保存好的代码,在需要执行的时候调用一下就会执行。

GDScript 中使用 func 表示一个方法,后面紧跟一个方法的名字,所以再看上面的代码,我们会发现其中包含两个方法,分别是_ready_process

方法的最后有一个冒号,然后另起一行的内容就是方法体,也就是这个方法所包含的代码, pass 关键字表示这个方法没有代码,也可以把 pass 替换成咱自己的代码。

之前写的 print 下面还跟着一个 pass 呢,那个 pass 其实没用,删掉也可以。

方法和函数这两个名字我也经常混着用,如果看到后面发现我提到了函数这个词,要知道指的就是方法。

结合官方给的注释,现在我们大致明白之前的 print 代码是怎么回事了,因为咱把 print 放在了 _ready 方法当中,按照注释“在节点第一次进入场景树时执行”所说,咱们的 print 就跟着 _ready 在节点第一次出现时执行了一次。

[!tip] 还是有点蒙吗?

这一节的内容留个印象即可,后面会再详细讲解,现在只需要知道两件事:

  1. _ready 方法中的代码会游戏刚运行时执行

  2. _process 方法中的代码会在游戏运行时的每一帧执行

[!tip] 啥叫场景树?

Godot 中把一堆节点构成的东西称作,那么场景树就是这个场景中节点所组成的树了。

至于进入场景树就是指加入到场景树中,也就是游戏刚开始时了。