课程入口1
课程入口2
课程入口3
课程入口4
1. 回收系统的形态分类
- 通过命令实现(如
take bug items
):直接通过脚本命令处理回收逻辑,避免复杂的表格配置。
- 通过表格配置:需要配置回收ID、名称等,灵活性较低但适合批量管理。
- 自定义脚本实现:更灵活,适合动态需求,但需要手动处理逻辑。
2. 核心实现步骤
(1) NPC与界面设计
- 预加载:初始化回收系统的数据(如CSV表)。
- 页面显示层:用Cocos Creator设计UI,包括分类标签、装备列表、复选框、全选/反选按钮等。
- 逻辑层:处理用户交互(如点击分类、勾选装备、回收操作)。
(2) 数据存储与读取
- CSV表配置:存储回收物品的分类、名称、回收奖励(金币、绑金、矿石等)。
- 变量管理:
- 用
n变量
或 t变量
临时存储复选框状态(如勾选了哪些装备)。
- 通过
T11
等变量持久化用户选择,避免重新打开界面时状态丢失。
(3) 动态界面生成
- 循环加载:根据CSV表的行数动态生成装备条目,避免硬编码。
- 列表容器:用Cocos的列表容器(List)实现自适应排版,支持滑动查看多行物品。
- 坐标计算:通过循环和偏移量动态调整每个条目位置。
(4) 功能逻辑
- 全选/反选:遍历所有复选框,统一设置状态(1或0)。
- 回收逻辑:根据勾选的物品ID,调用游戏命令(如扣除物品并发放奖励)。
- 错误处理:检测变量是否存在、避免死循环(如
goto
和 mine
标签的合理使用)。
3. 关键代码片段
- 读取CSV表:
newread "QD/回收系统.csv" -- 加载配置表
- 动态生成界面:
while n0 < 最大行数 do
inc(n0)
-- 创建复选框和文字,挂载到列表容器
end
- 保存复选框状态:
ADD T11 菜单参数, "1,0,1,0" -- 存储勾选状态
- 全选/反选逻辑:
if 复选框状态 == 1 then
复选框状态 = 0 -- 反选
else
复选框状态 = 1 -- 全选
end
4. 注意事项
- 性能优化:避免频繁操作大列表,可用
INC
逐步构建界面。
- 变量冲突:合理规划
n变量
和 t变量
的使用范围,防止覆盖。
- 界面刷新:通过
goto
或 mine
标签重新加载界面,确保状态同步。
5. 下节课预告
- 回收逻辑实现:处理物品扣除与奖励发放。
- 批量操作优化:支持多页物品回收和异步加载。
- 高级功能:自动回收规则、条件过滤(如仅回收特定品质装备)。
通过这节课,学员可以掌握动态UI生成、表格数据读取和状态管理的核心方法,为复杂系统开发打下基础。