Back
Godot 的语法约定
我们可以通过以下的几个方面,快速地了解 Godot 的语法约定:
1.数据类型
var my_integer = 42 # 整数
var my_float = 3.14 # 浮点数
var my_string = "Hello, World!" # 字符串
var is_true = true # 布尔值
var my_array = [1, 2, 3, 4, 5] # 数组
var my_dict = {"name": "Alice", "age": 30} # 字典
# 枚举
enum Direction {
UP,
DOWN,
LEFT,
RIGHT = -1
}
# 枚举,相当于声明常量
# const UP = 0
# const DOWN = 1
# const LEFT = 2
# const RIGHT = -1
var my_direction = Direction.UP
# 向量
var my_vector2 = Vector2(1.0, 2.0) # 二维向量
var my_vector3 = Vector3(1.0, 2.0, 3.0) # 三维向量
# 颜色
var my_color = Color(1.0, 0.0, 0.0, 1.0)
2.变量
在 Godot 中,变量可以存储任何类型的数据,并且可以在程序运行时更改其值。
2-1.变量声明
# 动态类型声明
var my_var = 15
my_var = "Hello, World!" # 动态类型声明允许在变量声明后更改其类型
# 静态类型声明
var num:int = 15
var num := 15 # 类型推断,自动推断变量类型
# 常量声明
const MAX_HEALTH:int = 100 # 常量值在声明后不能被修改
# 局部变量声明
func _ready():
var my_local_var = 15 # 局部变量只能在函数或方法内部使用
print(my_local_var)
2-2. 变量操作
在 Godot 中,运算符用于执行算术、比较、逻辑、赋值等操作:
var a = 1
var b = 2
# 算术运算符:加法`+`、减法`-`、乘法`*`、除法`/`、取余数`%`
func _ready():
print(a + b) # 加法 3
print(a - b) # 减法 -1
print(a * b) # 乘法 2
print(a / b) # 除法 0.5
print(a % b) # 取余数 1
# 关系运算符:等于`==`、不等于`!=`、大于`>`、小于`<`、大于等于`>=`、小于等于`<=`
func _ready():
print("是否相等: " + str(a == b))
print("是否不相等: " + str(a != b))
print("是否大于: " + str(a > b))
print("是否小于: " + str(a < b))
print("是否大于等于: " + str(a >= b))
print("是否小于等于: " + str(a <= b))
# 逻辑运算符:与`and` 或`or` 非`not`
func _ready():
print("a 与 b: " + str(a and b))
print("a 或 b: " + str(a or b))
print("非 a: " + str(not a))
print("非 b: " + str(not b))
# 赋值运算符:等号`=`、加等号`+=`、减等号`-=`、乘等号`*=`、除等号`/=`
func _ready():
var x = 5 # 使用赋值运算符 "=" 将值 5 赋给变量 x
var y := x # 使用赋值运算符 ":=" 将变量 x 的值赋给变量 y
print(x += 5) # 相当于 x = x + 5
print(x -= 5) # 相当于 x = x - 5
print(x *= 5) # 相当于 x = x * 5
print(x /= 5) # 相当于 x = x / 5
# 字符串运算符
var str1 = "Hello, " + "Godot" # 连接
var str2 = "My name is %s" % 'zhangsan' # 插入
3.逻辑语句
3-1.条件语句
在 Godot 中,条件语句主要包括 if-elif-else
语句,以及 match
语句。这些条件语句用于根据不同条件执行相应的代码块。
示例代码如下:
var number = 10
if number < 10:
print("小于 10")
elif number == 10:
print("等于 10")
else:
print("大于 10")
var state = "running"
match state:
"idle":
print("角色静止")
"running":
print("角色奔跑")
"jumping":
print("角色跳跃")
_:
# _用作默认或“其他”情况,当没有其他分支匹配时执行。
print("未知状态")
3-2.循环语句
# 使用for循环打印数字1到5
for i in range(1, 6):
print(i)
# while循环
var i = 0
while i < 5:
if i == 1:
i += 1
continue # 跳过本次循环,继续下一次循环
if i == 3:
break # 跳出循环
print(i)
i += 1
4.函数
# 定义函数
func fn(bool: boolean) -> void:
if bool: print("Yes")
else:
for i in range(1, 6):
print(i)
# 调用函数
fn(true)
5.类
注意!
每一个 GDScript 脚本文件本身一个“类”,这意味着你在文件范围内声明的所有内容(例如变量和函数)都是类定义的一部分。
extends Node # 继承
class_name MyClass # 命名
var my_property = 0 # 类的属性
# 类的方法
func my_method():
print("Hello from MyClass!")