Godot Engine 学习笔记 脚本-创建

脚本-创建

    • 脚本
    • 建立场景
    • 添加脚本
    • 处理信号

脚本

  • 在Godot3.0之前,编写游戏脚本的唯一选择是使用 GDScript。而现在,Godot官方支持四种语言,并且能够动态添加额外的语言!
  • GDScript
    • 简单,优雅,设计上为Lua、Python、Squirrel等语言用户所熟悉。
    • 加载和编译速度飞快(blazingly fast)。
    • 编辑器集成非常令人愉快,有节点、信号、其它场景相关项目的代码完成。
    • 有内建矢量类型(比如Vector、Transform等),大量使用线性代数时非常有效。
    • 支持多线程,像静态类型语言一样有效 - 这是我们避免使用诸如Lua、Squirrel等虚拟机的原因之一。
    • 不使用垃圾回收器,所以它确定性地自动处理之这部分(大多数对象都是引用计数)。
    • 它的动态特性使其需要提高性能时,可以很容易地优化C++代码段(通过GDNative),而这些不需要重新编译引擎。
  • 以上完完全全出自官方文档。
  • 关于其他的语言,看官方文档吧。
  • 官方文档
  • 以下从官方文档照着学的。

建立场景

  • 添加一个Panel作为根节点,然后为Panel添加一个Label节点和一个Button节点
  • 节点树如下:
    • Panel
      • Label
      • Button

Godot Engine 学习笔记 脚本-创建_第1张图片

  • 选中控件,然后从右下方的属性面板栏中的Rect下的size设置控件大小

Godot Engine 学习笔记 脚本-创建_第2张图片

  • 在属性面板中的Text属性设置文字

Godot Engine 学习笔记 脚本-创建_第3张图片

  • 在属性面板中的Rect下的Position中设置控件位置

Godot Engine 学习笔记 脚本-创建_第4张图片

  • Label的属性面板中有Align和Valign可分别设置其中文字的水平布局和垂直布局,Button只有Align只能设置水平布局。

Godot Engine 学习笔记 脚本-创建_第5张图片

  • 最后还要记得保存场景。

添加脚本

  • 右击需要添加脚本的节点或选中节点然后点击场景树编辑器右上方的带一个小加号的按钮
  • 现在为Panel添加一个脚本

Godot Engine 学习笔记 脚本-创建_第6张图片

  • 点击后脚本创建对话框会弹出。这个对话框允许你设置脚本语言、类名和其它相关选项。
  • 在GDScript里,文件本身代表了类,所以类名一栏无法编辑。
  • 因为添加脚本的节点是Panel,继承自栏会自动选为Panel
  • 最后输入脚本的路径名并新建

Godot Engine 学习笔记 脚本-创建_第7张图片

  • 新建后可通过节点右侧的"打开脚本"图标或属性面板的Script属性来查看脚本

Godot Engine 学习笔记 脚本-创建_第8张图片

  • 点击后会进入脚本编辑器

Godot Engine 学习笔记 脚本-创建_第9张图片

  • _ready() 函数在节点及其所有子节点进入活动场景时调用。 注意: _ready()并不是构造器;构造器是 _init()

处理信号

  • 当某种特定行为发生时,信号会被“触发”,并且它们可以连接到任意脚本实例的任意函数。信号主要用于GUI节点,不过其他节点也有信号,你甚至可以在自己的脚本里定义自定义信号。
  • 现在连接Button按下的信号,选中Button节点,然后选择属性面板右边的"节点"选项卡,接着选择"信号"。

Godot Engine 学习笔记 脚本-创建_第10张图片

  • 选中pressed()然后点击"连接信号…"。

Godot Engine 学习笔记 脚本-创建_第11张图片

  • 点击"连接信号…"后弹出连接信号对话框。

Godot Engine 学习笔记 脚本-创建_第12张图片

  • 在对话框的节点树中触发节点为红色显示名称,然后选中想要触发方法的节点,节点路径会根据选中的节点自动更改,Method In Node 为节点脚本中触发方法的名称。然后点击连接,如果右侧的创建方法为ON则会在建立连接前创建好方法。
  • 然后即可在脚本中的_on_Button_pressed()自定义触发方法的内容。

Godot Engine 学习笔记 脚本-创建_第13张图片

  • 这里触发的代码为将Label的文本变为"Hello"
  • 然后运行场景看看效果:

Godot Engine 学习笔记 脚本-创建_第14张图片

  • 点击"button":

Godot Engine 学习笔记 脚本-创建_第15张图片

  • Label的文本从"Label"变为"Hello"
  • 注意:get_node(path)方法的参数不是类名而是节点名,如果Button是Label的子节点,则需要写成get_node("Label/Button")
  • Godot除了可以用如上编辑器的可视化界面创捷连接,还可以使用代码创建,具体见官方文档

你可能感兴趣的:(Godot,Engine)