7.Godot脚本介绍及变量的定义和导出

04-23 1167阅读

1. 脚本的定义

  • 游戏脚本 Script ,用代码来控制游戏对象和逻辑
  • godot使用 GdScript 作为脚本语言和python最类似,比python简单
  • 注意:自本章开始,每节课的项目源码都放在了github项目godot-start,可以直接对照示例项目
  • 游戏开发,也是一种程序设计,如果是0基础的同学,建议先学习一个强类型语言比如Java,C#,C++,再来学习GdScript就一通百通了

    2. 脚本的使用

    • 如何使用一个脚本?
      新建脚本 hello.gd ,编辑代码 ,保存一下
      把脚本挂载到游戏节点上
      运行游戏,点 Play Scene 运行当前游戏场景,在 Output 窗口里观察打印输出
      

      3. 认识脚本

      • 因为是GdScript是弱类型语言,所以比较自由,但是我们可以约定一些原则让代码更加的规范:
        类名必须与文件名相同,且为小写
        比如场景名和节点名和脚本名都是一样的
        尽量继承于 Node2D 节点,Node2D 节点中的Transform是我们用的最多的节点
        继承sprite也没有关系,但是sprit里的属性很多用不到,比较浪费性能
        如果不用tranform,也可以继承node节点,更加清晰
        继承的节点的层级越往上就更简单
        
        • 常用函数内部执行顺序
          默认定义了一些事件函数,例如,
          _init():脚本初始化的时候调用,对象的构造器,类似于Java的构造函数construct,首先被调用
          _ready():开始调用一次,可用于初始化脚本,是一个事件函数,脚本挂载以后会回调一个ready函数
          _process(delta):每帧调用,帧间隔不等,可用于更新游戏
          

          生命周期开始的时候会回调ready,每帧刷新的时候会回调process,delta是每帧调用之间的间隔

          7.Godot脚本介绍及变量的定义和导出
          (图片来源网络,侵删)

          4.变量和数据类型

          变量的概念与简单操作
          • 变量是可以代表数据的一种抽象概念。可以通过对变量名的操作来对变量代表的数据进行操作。
          • 在 GDS 中,你可以创建自定义的变量,也可以使用内置代码中的变量。
          • 变量可以进行计算与转换。必须在函数内发生
          • 即使是同一脚本文件,绑定不同的对象从而产生了同名的变量,这两个变量以及变量代表的数据也分别属于不同的对象,互相独立。因此使用变量前必须指明变量所属的对象
          • 变量是用于存储信息的"容器"。
            var x=5;
            var y=6;
            var z=x+y;
            就像代数那样
            x=5
            y=6
            z=x+y
            在代数中,我们使用字母(比如 x)来保存值(比如 5)。
            通过上面的表达式 z=x+y,我们能够计算出 z 的值为 11。
            在 godot 中,这些字母被称为变量。
            
            gds数据类型分类
            • bool,一个字节,默认为false
            • int(同C++和Java long),8个字节,默认为0
              • 在godot里的表示范围-9223372036854775808~9223378036854775807
              • 2^64-1
              • float(同C++和Java double),8个字节,默认为0
              • String,默认为null,字符串可以存储一系列字符,如 “John Doe”。
              • 数组
              • 对象
              • null,变量没有被赋值,则默认为null
                变量的作用

                变量除定义的过程外,必须在函数内进行数值的修改,内置代码中的许多变量在修改后,会直接对游戏内容产生实质性的影响。而自定义的变量则不会。因此,可以用自定义的变量来定义逻辑上的游戏数据,而后通过判断逻辑上的数据情况,来调整内置代码中的变量,对游戏的画面、音效等产生实际的影响。


                通过内置变量影响游戏

                1. 给sprite节点添加一个脚本

                  在process函数输入

                self.position.x = self.position.x + 1
                

                这样每帧这个精灵节点就会往右移动1

                1. 给label节点也添加一个脚本

                  在函数外定义一个全局变量

                var c:String = "Hello World"
                

                在ready函数中输入

                self.text = c
                

                在运行场景的时候文本框内会显示Hello World

                导出变量
                • @export关键字可以让变量在编辑器中编辑,godot编辑器里的文档中有详细的用法
                  # 导出一个数字
                  @export var a = 1
                  # 导出一个节点路径
                  @export var b:NodePath
                  # 导出一个文件路径
                  @export_file var sound_effect_path: String
                  # 导出一个文件路径,以txt结尾
                  @export_file("*.txt") var notes_path: String
                  
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]