课程视频链接
TXT基础课程,自定义输入框Input
课程总结:叠加物品输入框功能实现
1. 目标需求
- 实现双击触发物品(如经验券)后弹出界面,支持以下功能:
- 加减按钮:调整使用数量。
- Max按钮:一键填入背包中该物品的最大数量。
- 输入框:手动输入具体数量。
- 使用按钮:按指定数量消耗物品并发放奖励。
2. 关键实现步骤
-
物品修改
- 修改数据库中的物品(如经验券)为可叠加状态,并测试基础功能。
-
界面设计
- 使用按钮控件(加、减、Max)和输入框(
INPUT
)构建交互界面。
- 变量
N11
存储当前使用数量,通过按钮和输入框动态更新。
-
逻辑实现
- 加减按钮:通过
MOV
指令修改 N11
的值,并限制最小值(如1)。
- Max按钮:通过
获取背包物品数量
指令将 N11
设为物品最大值。
- 输入框:将输入内容赋值给
N11
,并校验合法性(如非空、数字范围)。
- 使用功能:调用
批量使用物品
指令,传入物品名和数量,扣除物品并发放奖励(如经验值)。
-
问题与解决
- 死循环:因跳转逻辑错误导致引擎崩溃,改用
TAG
标签控制流程。
- 物品名获取:通过常量
SPRIDX
(物品唯一ID)直接获取名称,避免数据库查询。
- 输入框背景:默认白色背景无法去除,需后续研究前端(Lua)修改。
3. 核心代码片段
# 加减按钮逻辑
[@加号]
MOV N11 <$STR(N11)> + 1
GOTO 显示界面
[@减号]
MOV N11 <$STR(N11)> - 1
GOTO 显示界面
# Max按钮逻辑
[@Max]
获取背包物品数量 经验券 N11
GOTO 显示界面
# 输入框提交
[@InputSubmit]
MOV N11 <$INPUTSTR>
GOTO 使用物品
# 使用物品
[@使用物品]
批量使用物品 经验券 <$STR(N11)> 0
# 发放奖励(如经验值)
CHANGEEXP + <$STR(N11)> * 1000000
4. 遗留问题
- 输入框交互:无法实现“点击文本直接修改”的效果,需前端(Lua)支持。
- 背景色:输入框默认白色背景无法通过脚本去除,需引擎或前端调整。
5. 后续优化方向
- 使用 Lua脚本 实现更灵活的输入交互。
- 添加 数值校验(如输入非数字时提示)。
- 优化界面布局,适配更多分辨率。
最终效果:用户可双击物品后通过按钮或输入框指定使用数量,批量消耗物品并获得奖励,功能完整但部分交互需进一步优化。