因为发现 GDScript 也不完全是 Python,所以或多或少还是要学一下。不过也没多少就是了。
1. Number
科学计数法可以直接写 3e6。
特殊数字的关键字有这些可以记下:PI,TAU,INF。
分别代表 π,2π,无限大。
1.1 为什么 int 超过最大值不报错
和 python 无限大小不一样。在 GDScript 里,int 数字是 64bit,所以值只能在 -2**63 到 2**63-1 之间(因为要留 1bit 给正负记号)。给最大值加一会变成最小值,但不会导致代码崩溃。
不设计成崩溃而是循环到最小值,是因为对于游戏来说,有很多需要这个设计的时候。比如作为坐标值的话,我们并不希望坐标达到最大值后崩溃。
一般来说,因为 float 会有精度问题。所以精确计算的时候不要用 float。
2. 变量
虽然 Godot 是动态类型语言,但是也可以定义有类型的变量。语法是 var text: String = "hello"
别的没啥,和 python 一模一样。
3 & 4. 运算符 & 函数
和 python 一模一样。
5. 条件语句
GDScript 里的 switch 叫做 match。并提供了很多额外功能。可以一看。
6. 循环语句
和 python 一模一样。
7. 数组
和 python 一模一样,连方法名都一模一样。
GDScript 也提供了很多其他数组类型用于一些高级功能。等用的时候再说吧。
8. 字典
一模一样。可以用 duplicate 方法来 deep/shallow copy。
9. 类
Godot 里的节点就是类。场景也是类。我们在一个场景里引用另一个场景,实际上就是在这个场景上实例化另一个场景。
比较像 js,所有的类都有一个基类叫 Object,然后继承到其它类。
可以通过 in 来获取属性方法是否在某个类中。
10. 总结
语法上几乎完全是 python。