【 Godot 4 学习笔记】基础数据类型使用教程

Godot 4 基础数据类型使用教程

以下是 Godot 4 (GDScript) 中基础数据类型的完整教程,按类别分块讲解。


一、标量类型(Scalar Types)

1. int — 整数

64 位有符号整数,范围 (-2^{63}) ~ (2^{63}-1)。

var health: int = 100
var score: int = -5
var hex_val: int = 0xFF        # 十六进制 → 255
var bin_val: int = 0b1010      # 二进制 → 10

# 运算
var a = 10 / 3                 # 结果为 3(整数除法截断)
var b = 10.0 / 3               # 结果为 3.333(浮点除法)
var c = 10 % 3                 # 取余 → 1

注意:两个 int 相除结果仍为 int(截断),想要浮点结果需至少一方为 float


2. float — 浮点数

64 位双精度浮点数(IEEE 754)。

var speed: float = 5.5
var pi: float = 3.14159
var scientific: float = 1.2e5  # → 120000.0

# 常用数学函数(内联)
var rounded = round(3.7)       # → 4.0
var floored = floor(3.7)       # → 3.0
var ceiled = ceil(3.2)         # → 4.0
var clamped_val = clamp(15, 0, 10)  # → 10(限制范围)
var lerped = lerp(0.0, 100.0, 0.5)  # → 50.0(线性插值)

# 浮点精度陷阱
if abs(a - b) < 0.0001:       # 不要用 == 比较浮点数
    print("大致相等")

3. bool — 布尔值

var is_alive: bool = true
var is_dead: bool = false

# 隐式转换规则
var x = bool(1)      # → true
var y = bool(0)      # → false
var z = bool("")     # → false(空字符串)
var w = bool("hi")   # → true(非空字符串)

# 逻辑运算
var result = true and false    # → false
var result2 = true or false    # → true
var result3 = not true         # → false

4. String / StringName — 字符串

# String — 可变字符串
var greeting: String = "Hello, Godot!"
var path: String = "C:\\Users\\Game"    # 转义反斜杠
var multi: String = """
    多行字符串
    第二行
"""

# 字符串插值
var name = "Player"
var level = 5
var msg = "Welcome, {name}! Level {lv}".format({"name": name, "lv": level})
var msg2 = f"Score: {score}"              # Godot 4.4+ 支持 f-string

# 常用方法
var upper = "hello".to_upper()            # → "HELLO"
var left = "hello".left(3)                # → "hel"
var replaced = "a-b-c".replace("-", "_")  # → "a_b_c"
var parts = "1,2,3".split(",")            # → ["1", "2", "3"]
var trimmed = "  hi  ".strip_edges()      # → "hi"

# StringName — 不可变字符串,用于高频比较(如信号名、节点名)
var signal_name: StringName = &"health_changed"   # & 前缀创建 StringName
var node_name: StringName = ^"Player"              # ^ 前缀(仅限字符串字面量)
特性 String StringName
可变性 可变 不可变(内部缓存)
比较速度 较慢(逐字符) 极快(比较内部 ID)
适用场景 文本处理、显示 信号名、属性名、节点路径
创建方式 "text" &"text"^"text"

二、数学向量类型(Vector Types)

1. Vector2 / Vector2i

# Vector2 — 2D浮点向量
var pos: Vector2 = Vector2(100, 200)
var vel: Vector2 = Vector2.RIGHT * 50    # → (50, 0)
var diagonal = Vector2.ONE               # → (1, 1)

# 常用操作
var length =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值