脚本结构
上一节咱们运行了一句代码,但我估计你应该还是比较蒙,这节就来看一下之前那篇代码的每一句话是什么意思。
代码语法之:注释
首先来认识一个最简单的语法,它叫做注释
。
因为代码本质上还是给计算机看的东西,在逻辑复杂或代码太长时,人类阅读起来非常困难,人们就在代码中穿插加入一些小笔记来解释代码的逻辑和用法,这种小笔记就是注释了。
在 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] 还是有点蒙吗?
这一节的内容留个印象即可,后面会再详细讲解,现在只需要知道两件事:
_ready
方法中的代码会游戏刚运行时执行
_process
方法中的代码会在游戏运行时的每一帧执行
[!tip] 啥叫场景树?
Godot 中把一堆节点构成的东西称作树,那么场景树就是这个场景中节点所组成的树了。
至于进入场景树就是指加入到场景树中,也就是游戏刚开始时了。