godot gd代码学习(1

继承

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

你可能感兴趣的:(godot gd代码学习(1)