定义类
我们已经感受到了,在 Godot 中,一个 GDScript 脚本文件就是一个类,但某些情况下,我们需要一些小巧的类,我们懒得去再创建一个新的脚本文件了,此时就可以用内部类语法:
class <类名>:
<类成员(方法、属性、信号等)>
例如我们用这种形式定义一个 伤害来源 类:
class 伤害来源:
var 攻击者 = null
var 伤害值 = 0
var 是魔法吗 = false
可见,除开第一行 class 关键字外,其他的语法都正常的类相同。
但注意,这样定义的类被称作内部类,就是说这个伤害来源类是位于当前脚本文件类内部的类,所以外部脚本想要使用这个伤害来源类时,就需要使用 外部类.内部类
的形式来访问。
假设刚刚定义 伤害来源 类的文件中有一行 class_name 伤害相关
,那么外部代码在使用 伤害来源 类时则需要:
var 伤害 = 伤害相关.伤害来源.new() # 实例化这个类
[!note] 非节点的类实例
上面的
伤害来源
例子中,这个类就没继承自任何一个节点父类,也就是说伤害来源
并不是一种节点,当实例化了这个类时,游戏中确实会多出一个伤害来源
实例,但这个实例不会对游戏产生直接影响,它的属性和方法仅供我们其它代码使用。