脚本创建以及代码风格
脚本、变量、函数的创建
创建代码脚本的方式与创建可视化脚本的方式几乎相同。选择想要挂载脚本的节点,选择添加脚本即可,唯一不同的地方是在“语言”一栏中选择IVRScript。绿色字体将提示您脚本名称是否有效,以及名称是否与同文件夹中的其他脚本重复。如图:
创建成功后会弹出脚本的编辑窗口:
如脚本中的注释所示,在第一行下方可以声明脚本的成员变量。函数创建只需要用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,}