跳到主要内容

脚本创建以及代码风格

脚本、变量、函数的创建

创建代码脚本的方式与创建可视化脚本的方式几乎相同。选择想要挂载脚本的节点,选择添加脚本即可,唯一不同的地方是在“语言”一栏中选择IVRScript。绿色字体将提示您脚本名称是否有效,以及名称是否与同文件夹中的其他脚本重复。如图:

create_ivr_script

创建成功后会弹出脚本的编辑窗口:

ivrscript_created

如脚本中的注释所示,在第一行下方可以声明脚本的成员变量。函数创建只需要用func关键字加上函数名称即可:

func my_function():
pass

代码风格指南

该样式指南列出了编写IVRScript的一些约定。目标是促进编写干净,可读的代码,并促进项目,讨论和教程之间的一致性。 风格指南并不是硬性的规则手册。有时,你可能无法应用下面的一些准则。当这种情况发生时,按自己的判断,并询问其他开发人员的见解。 一般来说,在项目和团队中保持代码的一致性比遵循本指南更为重要

格式

编码和特殊字符 使用换行符( LF )来换行, 而不是CRLF或CR。(编辑器默认设置) 在每个文件的末尾使用一个换行符。(编辑器默认设置) 使用Tabs代替制表符进行缩进(称为 "软制表符")。(编辑器默认设置)

避免不必要的括号

避免在表达式和条件语句中使用括号。除非对操作顺序有必要,否则它们只会降低可读性。

好:

If is_mesh():
Queue_free()

坏:

If (is_mesh()):
Queue_free()

布尔运算符

推荐使用纯英文版本的布尔运算符: 使用and代替&&。 使用or代替||。 您还可以在布尔运算符周围使用括号来清除任何歧义。这可以使长表达式更易于阅读。

好:

if (A and B) or c:
print(“nice!)

坏:

if A && B or C:
print(“nice!)

行的长度 把每行代码控制在100个字符以内。

如果可以的话,尽量把行控制在80个字符以下。这有助于在小屏幕上阅读代码,并在外部文本编辑器中并排打开两个脚本。

空白

始终在运算符周围和逗号后使用一个空格。此外,避免在字典引用和函数调用中使用额外的空格。

好:

position.x = 5
dict["key"] = 5
my_array = [4, 5, 6]
print("a ha!")

坏:

position.x=5
dict ["key"]=5
my_array = [4,5,6]
print ("a ha!")

不要使用空格来垂直对齐表达式:

X        = 100
y = 100
velocity = 500

数字

不要省略浮点数中的前导或尾随零。否则,这会降低可读性,并且很难一眼将它们与整数区分开来。

好:

var float_number = 0.123
var other_float_number = 23.0

坏:

var float_number = .123
var other_float_number = 23.

命名约定

文件名 使用蛇类命名法(snake_case)作为文件名。

#这个文件应该保存为weapon.is`.
class_name Weapon
extends Node
#这个文件应该保存为yaml_parser.is`.
class_name YAMLParser
extends Object

这样可以避免将项目从Windows导出到其他平台时可能出现的区分大小写的问题。

类和节点 对类名和节点名使用帕斯卡命名法(PascalCase):

extends MeshInstance

在将类加载到常量或变量中时也使用帕斯卡命名法:

const Weapon = preload("res://weapon.is")

函数和变量 使用蛇类命名法来命名函数和变量:

var particle_effect
func load_level():

在虚方法(用户覆写的函数), 私有函数和私有变量前加一个下划线( _ ):

var _counter = 0
func _ready():

信号 用过去时态来命名信号:

signal door_opened
signal score_changed

常数和枚举 全部大写, 用下划线(_)分隔单词 :

const MAX_SPEED = 200

对枚举名称使用帕斯卡命名法,对齐成员使用大写命名,因为它们是常量:

enum Element {
EARTH,
WATER,}