继承
extends BaseClass
变量
var a=5
var s="Hello"
var arr=[1,2,3]
var dict={"key":"value", 2:3}
var v2 = Vector2(1,2)
var v3 = Vector3(1,2,3)
常量
const answer=42
const thename="Charly"
函数
func some_function(param1,param2):
var local_var=5
if param1 < local_var:
print(param1)
elif param2 > 5:
print(param2)
else:
print("fail!")
for i in range(20):
print(i)
while(param2!=0):
param2-=1
var local_var2 = param1+3
return local_var2
类和类变量
class Something:
var a = 10
构造器
func _init():
print("constructed!")
var lv = Something.new()
print(lv.a)
类型
null:空类型
bool:布尔类型,只有true或false
int:整型,可以包含正整数和负整数
float:浮点型,包含浮点值
String:unicode格式的字符序列,包含标准的C转义序列
Array:数组是对象序列,长度可变,索引从0开始
Dictionary:字典,关联式容器,其中包含了唯一的键对值的引用
Vector2/Size2:2D矢量类型
Rect2:2D矩形类型
Vector3:3D矢量类型
Matrix32:用做2D转换的3x2矩阵
Plane:标准化形式的3D平面
Quat:四元数
AABB/Box3:轴对齐包围盒(或可选的,3D盒)
Matrix3:用做3D旋转和缩放的3x3矩阵
Transform:3D转换
Color:Color数据类型,包含r,g,b,a字段。也能为hue/saturation/value做为h,s,v被访问
Image:包含一个能够直接访问其像素的自定义格式图片
NodePath:节点的编译路径,主要用于场景系统
RID:资源ID
Object:所有事物的基类,不是一个内置类型
InputEvent:InputEvent对象非常紧凑的包含了从输入设备获取的事件,他们能够从帧到帧被大量的接收,他们能够用自己的数据类型优化。
ByteArray:字节数组,只能包含bytes
IntArray:整形数组,只能包含整数
FloatArray:浮点型数组,只能包含浮点数
StringArray:字符串型数组,只能包含字符串
Vector2Array:Vector2型数组,只能包含2D矢量
Vector3Array:Vector3型数组,只能包含3D矢量
ColorArray:Color型数组,只能包含颜色
支持lua样式的语法
条件
if [expression]:
statement(s)
elif [expression]:
statement(s)
else:
statement(s)
switch
循环
while [expression]:
statement(s)
for i in [0,1,2]:
statement
var dict = {"a":0, "b":1, "c": 2}
for i in dict:
print(dict[i])
for i in range(3):
statement # similar to [0,1,2]
for i in range(1,3):
statement # similar to [1,2]
for i in range(2,8,2):
statement # similar to [2,4,6]
静态函数
static func sum2(a,b):
return a+b
调用函数
instance.call("funcname",args)
var fr = funcref(instance,"funcname")
fr.exec(args)
参考:
http://docs.godotengine.org/en/3.0/getting_started/scripting/gdscript/gdscript_basics.html