Godot学习笔记(2)—— GDScript(1)


0. GDScript用起来很像Python,使用缩进进行结构化,变量默认为动态类型。Godot本身支持多种语言混合编程。

1. 新建节点

??点击“场景-其他节点-Sprite”创建一个节点,并将图片拖放于窗口右侧的节点的纹理(Texture)属性框内。

??这会为节点绑定一个纹理。

2. 绑定脚本

??选中节点,点击窗口左上方的“附加脚本”按钮,将打开设置脚本窗口。

??语言默认为GDScript,继承默认为Sprite,模板可以选择默认或者空(Empty)模板,路径可以修改为单独的脚本路径。

3. Hello World

??新脚本首行的extend Sprite,表示这个脚本是Sprite类的继承和扩展。

??当去掉所有extend关键字后,脚本默认继承于Reference类。

??GDScript通常使用蛇形命名法,即字母全小写,使用下划线连接分词。

??在脚本中添加

func _init():
    print("Hello, world!")

??每次创建对象或节点时,_init()函数都会被调用一次。

??按F6运行脚本,此时输出窗口将显示"Hello, world!"

4. 移动和旋转

??使用关键字“var”在脚本开头定义成员变量,成员变量位于所有函数之前。

var speed = 400
var angular_speed = PI

??函数_process(delta)每帧调用一次,并传递上一帧之后经过的时间。??

func _process(delta):
    rotation += angular_speed * delta

??运算符a+=b表示a=a+b

??这段代码会让Sprite原地旋转。

??在_process()下再添加以下代码

var velocity = Vector2.UP.rotated(rotation) * speed
position += velocity * delta

??第一行在函数内定义了一个velocity(速度)变量,调用了Vector2在上方向的旋转参数,并与成员变量speed相乘,得到的是在上方向上的移动速度

??Vector(向量)是坐标轴,Vector2是二位坐标,Vector3是三维坐标。

??Godot的坐标原点在画面左上角,右侧为X正方形,下方为Y正方向。

??运行上面的代码,会得到一个画圆并旋转的Godot图标。

??用这种方法移动,将忽略墙壁的碰撞属性。