创游世界数据类型速查卡
一句话摘要
创游世界脚本系统支持多种数据类型,包括数字、真假值、文本、数组、结构体和物品类型。本文用快问快答的形式帮助你快速理解和选择正确的数据类型。
适合谁阅读
- 不知道该用什么数据类型的初学者
- 遇到数据类型转换问题的开发者
- 需要快速查阅数据类型用法的制作者
你将学到什么
- 六种基础数据类型的定义和用途
- 数据类型之间的转换方法
- 常见数据类型错误及解决方案
- 不同场景下数据类型的选择建议
一、数据类型快问快答
Q1:数字和文本有什么区别?
A: 数字用于数学运算,文本用于显示和存储文字。
数字运算:
10 + 5 = 15 ✓
文本拼接:
"金币:" + 100 = "金币:100" ✓
注意:
"10" + "5" = "105"(文本拼接,不是数学运算)| 特性 | 数字 | 文本 |
|---|---|---|
| 用途 | 运算、计数、比较 | 显示、存储、拼接 |
| 运算 | 支持加减乘除 | 支持拼接、截取、查找 |
| 示例 | 100、3.14、-50 | "你好"、"金币"、"player" |
Q2:数字有小数怎么比较?
A: 小数比较建议用「是否约等于」,避免浮点精度问题。
❌ 不推荐:
如果 生命百分比 == 0.5 那么
✓ 推荐:
如果 生命百分比 约等于 0.5 那么小数注意点:
- 文本转数字失败会得到
NaN - 除数不能为 0
- 浮点数可能有精度误差
Q3:真假值有什么用?
A: 真假值用于条件判断,控制脚本执行分支。
真假值 = 真(条件成立)
真假值 = 假(条件不成立)
示例:
如果 开关 == 真 那么
打开大门
结束| 数值 | 显示 | 含义 |
|---|---|---|
| 真 | 1 或 true | 条件成立 |
| 假 | 0 或 false | 条件不成立 |
Q4:文本能做什么操作?
A: 文本支持拼接、截取、查找、替换、转换等操作。
| 操作 | 示例 | 结果 |
|---|---|---|
| 拼接 | "金币:" + 100 | "金币:100" |
| 查找位置 | "你好世界" 查找 "世界" | 返回起始位置 |
| 替换 | "你好" 替换 "世界" | "世界" |
| 截取 | "你好世界" 截取 0 到 2 | "你好" |
| 转数字 | "100" 转为数字 | 100 |
| 转文本 | 100 转为文本 | "100" |
| 判断开头/结尾 | "game" 是否以 "ga" 开头 | 真 |
Q5:数组是什么?怎么用?
A: 数组是按顺序存储多个数据的容器,支持一维和二维数组。
创建数组:
数组1 = [1, 2, 3, 4, 5]
访问元素(索引从0开始):
获取 数组1 第 0 个 → 1
获取 数组1 第 1 个 → 2
遍历数组:
重复 数组1 长度 次
计数变量 + 1 → 计数
获取 数组1 第 (计数-1) 个 → 当前值
结束| 操作 | 说明 |
|---|---|
| 获取长度 | 返回数组有多少个元素 |
| 读取越界 | 返回空值,不会报错 |
| 写入越界 | 系统自动补全中间空位 |
| 遍历修改 | 可能导致索引错位,小心使用 |
二维数组示例:
二维数组 = [[1, 2], [3, 4], [5, 6]]
获取 二维数组 第 0 行 第 0 列 → 1
获取 二维数组 第 1 行 第 1 列 → 4Q6:结构体是什么?
A: 结构体把多个不同字段组合为一个整体对象。
结构体示例:
玩家信息 = {
名称: "玩家1",
等级: 10,
金币: 5000
}
访问字段:
获取 玩家信息.名称 → "玩家1"
获取 玩家信息.等级 → 10适用场景:
- 组合多个相关数据
- 返回复杂查询结果
- 封装对象状态
Q7:物品类型是什么?
A: 物品类型是一种特殊的数据类型,用于表示游戏中的道具、装备等物品。
| 物品类型 | 用途 |
|---|---|
| 消耗品 | 药水、食物等可使用后消失的物品 |
| 武器 | 装备后增加攻击力 |
| 防具 | 装备后增加防御力 |
| 任务物品 | 不可使用,用于任务进度 |
| 材料 | 用于合成或制作 |
| 货币 | 金币、钻石等 |
Q8:怎么把文本转成数字?
A: 使用「文本转数字」积木。
文本 "100" → 转数字 → 100
文本 "abc" → 转数字 → NaN(转换失败)安全写法:
如果 "100" 能转为数字 那么
"100" 转数字 → 数字变量
执行相应逻辑
结束Q9:数组越界了怎么办?
A: 读取越界返回空值,写入越界会自动补全。
数组 = [1, 2, 3]
读取越界:
获取 数组 第 10 个 → 空值(不会报错)
写入越界:
设置 数组 第 10 个 为 100
→ 数组变为 [1, 2, 3, 空, 空, 空, 空, 空, 空, 空, 100]安全写法:
如果 索引 < 数组长度 那么
获取 数组 第 索引 个
结束Q10:变量类型怎么决定?
A: 变量类型由初始值决定。
| 初始值 | 变量类型 |
|---|---|
100 | 数字 |
"文本" | 文本 |
真/假 | 真假值 |
[1, 2] | 数组 |
类型转换规则:
- 数字 + 数字 = 数字
- 文本 + 数字 = 文本
- 文本 + 文本 = 文本
- 数字比较用数值比较,文本比较用字典序
二、数据类型选择指南
快速选择表
| 需求 | 推荐数据类型 |
|---|---|
| 血量、金币、攻击力 | 数字 |
| 开关、状态标志 | 真假值 |
| 名字、提示文字 | 文本 |
| 列表、表格 | 数组 |
| 玩家信息、物品属性 | 结构体 |
| 道具、装备 | 物品类型 |
不同场景的变量类型选择
| 场景 | 变量类型 | 示例 |
|---|---|---|
| 记录当前生命值 | 数字 | 当前生命 = 100 |
| 记录是否已获得钥匙 | 真假值 | 已获得钥匙 = 真 |
| 显示欢迎语 | 文本 | 提示语 = "欢迎回来" |
| 记录背包所有物品 | 数组 | 背包列表 = ["血瓶", "金币", "钥匙"] |
| 记录玩家完整信息 | 结构体 | 玩家 = {名称, 等级, 金币} |
| 记录持有哪种武器 | 物品类型 | 武器类型 = 铁剑 |
三、常见问题与解决方案
问题1:文本转数字失败
原因: 文本不是有效的数字格式。
❌ 错误:
"abc" 转数字 → NaN
10 + "abc" → NaN
✓ 正确:
"100" 转数字 → 100
10 + "100" 转数字 → 110安全写法:
如果 文本 能转为数字 那么
执行转换并运算
否则
显示 "输入无效"
结束问题2:数组遍历时修改数组
原因: 边遍历边修改会导致索引错位。
❌ 危险做法:
数组 = [1, 2, 3, 4, 5]
遍历中删除元素
✓ 正确做法:
先记录要删除的索引
遍历结束后再统一删除问题3:文本拼接数字出错
原因: 没有做类型转换。
❌ 错误:
"金币:" + 100 = "金币:100" ✓
但是:
"金币:" + "100" = "金币:100" ✓
数字运算时:
"100" + "50" = "10050"(文本拼接)
✓ 正确做法:
金币: 100
显示: "金币:" + 金币(数字自动转文本)四、数据类型速查表
| 数据类型 | 表示方式 | 典型用途 | 常用操作 |
|---|---|---|---|
| 数字 | 100、3.14、-50 | 血量、金币、伤害 | 加减乘除、比较 |
| 真假值 | 真、假 或 1、0 | 开关、状态 | 条件判断 |
| 文本 | "文字"、'text' | 名字、提示 | 拼接、截取、查找 |
| 数组 | [1, 2, 3]、[[1,2],[3,4]] | 列表、表格 | 遍历、增删改查 |
| 结构体 | {key: value} | 复杂对象 | 字段访问 |
| 物品类型 | 物品ID或物品名 | 道具、装备 | 物品判断、使用 |
相关页面
- 创游世界数据类型完全指南 - 完整数据类型文档
- 创游世界变量与作用域完全指南 - 变量系统详解
- 创游世界脚本入门完全指南 - 脚本入门
- 常见问题与避坑指南 - 常见问题解决
待验证问题
以下问题需要进一步验证:
| 问题 | 状态 | 验证方向 |
|---|---|---|
| 物品类型在不同版本中的具体行为差异 | 🔄 待验证 | 需要多版本对比 |
| 结构体在复杂场景下的性能表现 | 🔄 待验证 | 需要实际项目测试 |
> 📝 说明:数据类型核心用法已稳定,进阶内容属于研究范畴。
后续优化方向
- [ ] 补充更多数据类型转换示例
- [ ] 添加数组常用操作模板
- [ ] 补充数据结构设计模式
