游戏投资计划系统开发教案(等级投资+时间投资功能)
课程主题:游戏投资计划系统开发(等级投资+时间投资功能)
适用对象:已掌握基础脚本编写、UI界面搭建及变量存储的游戏开发者(需熟悉CSV读表、容器布局、事件触发等基础操作)
课时:1课时(45分钟)
一、课程目标
通过本节课学习,掌握游戏中“投资计划系统”的全流程开发方法,能够独立完成以下任务:
- 搭建等级投资/时间投资界面(含阶段显示、奖励预览、购买状态标记);
- 编写脚本实现投资计划循环布局(自动排列多阶段奖励);
- 实现购买功能(判断元宝是否足够、是否已购买);
- 实现奖励领取功能(校验等级/开服天数条件、发放奖励、标记已领取状态);
- 排查界面错位、变量失效、条件判断错误等常见问题。
二、重点知识讲解
模块1:投资计划界面设计
1. 数据结构规划
- CSV表配置:需包含“等级投资”和“时间投资”两类数据,每类数据包含阶段(行)、所需等级/登录天数(列)、奖励元宝数量(列)等字段;
- 界面元素:每个投资阶段包含阶段标识(如“等级1”“第3天”)、奖励预览(元宝数量)、购买按钮、已购买/已领取状态标记(暗/亮图)。
2. 循环布局实现
- 容器选择:使用“列表容器”作为主框架(宽550,高根据阶段数量调整),内部嵌套“基础容器”用于布局单个阶段元素;
- 坐标计算:通过循环变量(如N0)动态计算每个阶段元素的X/Y坐标(例:每行3个阶段,X=初始X+150×列索引,Y=初始Y+200×行索引);
- 元素挂载:将阶段标识、奖励预览、购买按钮等元素挂载到基础容器,通过循环变量(N0)关联CSV表数据。
模块2:投资计划脚本逻辑
1. 初始化与读表
- 全局变量声明:使用T变量(如T91/T92)记录购买状态(主键为阶段ID,值为“已购买”);使用U变量(如U82)记录登录天数(每日登录触发更新);
- 读表逻辑:在
loading
触发中读取CSV表(投资计划表),获取等级投资/时间投资的阶段配置(所需等级、奖励元宝数量)。
2. 购买功能逻辑
- 点击购买触发:为“购买按钮”绑定
OnClick
事件,参数为当前阶段ID(如点击“等级1”,参数=1);
- 条件判断:
- 若当前阶段已购买(T变量中存在记录),提示“已购买”;
- 若元宝不足(
CheckMoney(元宝, 所需元宝)
),提示“元宝不足”;
- 否则,扣除元宝(
ChangeMoney(元宝, -所需元宝)
),标记阶段为已购买(SetVariableValue(T91, 阶段ID, "已购买")
)。
3. 奖励领取功能逻辑
- 点击领取触发:为“领取按钮”绑定
OnClick
事件,参数为当前阶段ID;
- 条件判断:
- 若未购买(T变量无记录),提示“未购买投资计划”;
- 若已购买但未达到领取条件(如等级<所需等级/登录天数<开服天数),提示“条件不足”;
- 否则,发放奖励(
GiveItem(元宝, 奖励数量)
),标记阶段为已领取(SetVariableValue(T92, 阶段ID, "已领取")
),刷新界面。
模块3:常见问题与排查
问题现象 |
可能原因 |
解决方法 |
阶段元素排列错乱 |
容器尺寸过小/坐标计算错误 |
调整列表容器尺寸(如宽550),重新计算X/Y坐标(每行3个,X=初始X+150×列索引) |
购买后未标记已购买 |
T变量未正确设置主键/值 |
检查SetVariableValue 参数(主键=阶段ID,值=“已购买”) |
领取奖励无反应 |
条件判断错误(如等级/开服天数校验失败) |
确认CheckLevel /CheckLoginDay 指令参数是否正确(如所需等级=CSV表对应列) |
元宝数量显示异常 |
数字转换图片功能配置错误(字体/尺寸不匹配) |
改用默认数字显示,或调整字体路径、尺寸参数(如宽度35,高度25) |
三、实战任务(课后练习)
- 基础界面搭建:
- 使用列表容器+基础容器搭建等级投资界面(含5个阶段);
- 配置阶段标识(如“等级1”“等级2”)、奖励预览(元宝数量)、购买按钮。
- 购买功能实现:
- 编写脚本实现购买条件判断(元宝足够、未已购买);
- 扣除元宝并标记阶段为已购买(T变量存储)。
- 奖励领取功能实现:
- 编写脚本实现领取条件判断(已购买、等级≥所需等级);
- 发放奖励并标记阶段为已领取(T变量存储)。
- 优化与调试:
- 调整阶段元素坐标,确保排列整齐;
- 测试边界条件(如元宝不足、未达到等级要求),验证提示信息是否正确。
四、总结与注意事项
- 核心规则:
- 投资计划状态需通过T变量长期存储(主键为阶段ID,值为“已购买”/“已领取”);
- 界面循环布局需提前计算容器尺寸与坐标,避免元素重叠或错位;
- 条件判断需严格校验(如元宝数量、等级/开服天数),避免逻辑漏洞。
- 优化建议:
- 封装通用函数(如
CheckPurchaseStatus(stageID)
),减少重复代码;
- 使用“九宫格”优化图片显示(避免拉伸失真);
- 测试时模拟多玩家场景(如不同等级、不同登录天数),验证功能稳定性。
课后思考:如何实现“累计投资奖励”(如累计投资1000元宝送稀有道具)?(提示:新增T变量记录累计投资金额,达到阈值时触发奖励发放。)