7.Godot脚本介绍及变量的定义和导出
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是每帧调用之间的间隔
(图片来源网络,侵删)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
变量的作用
变量除定义的过程外,必须在函数内进行数值的修改,内置代码中的许多变量在修改后,会直接对游戏内容产生实质性的影响。而自定义的变量则不会。因此,可以用自定义的变量来定义逻辑上的游戏数据,而后通过判断逻辑上的数据情况,来调整内置代码中的变量,对游戏的画面、音效等产生实际的影响。
通过内置变量影响游戏
- 给sprite节点添加一个脚本
在process函数输入
self.position.x = self.position.x + 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
- 给sprite节点添加一个脚本
- 常用函数内部执行顺序
- 因为是GdScript是弱类型语言,所以比较自由,但是我们可以约定一些原则让代码更加的规范:
- 如何使用一个脚本?
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。