TXT基础课程,自定义输入框Input

Txt 刚子老师 Txt 刚子老师 71 人阅读 | 1 人回复 | 2025-04-11

课程视频链接

TXT基础课程,自定义输入框Input

课程总结:叠加物品输入框功能实现

1. 目标需求

  • 实现双击触发物品(如经验券)后弹出界面,支持以下功能:
    • 加减按钮:调整使用数量。
    • Max按钮:一键填入背包中该物品的最大数量。
    • 输入框:手动输入具体数量。
    • 使用按钮:按指定数量消耗物品并发放奖励。

2. 关键实现步骤

  1. 物品修改

    • 修改数据库中的物品(如经验券)为可叠加状态,并测试基础功能。
  2. 界面设计

    • 使用按钮控件(加、减、Max)和输入框(INPUT)构建交互界面。
    • 变量 N11 存储当前使用数量,通过按钮和输入框动态更新。
  3. 逻辑实现

    • 加减按钮:通过 MOV 指令修改 N11 的值,并限制最小值(如1)。
    • Max按钮:通过 获取背包物品数量 指令将 N11 设为物品最大值。
    • 输入框:将输入内容赋值给 N11,并校验合法性(如非空、数字范围)。
    • 使用功能:调用 批量使用物品 指令,传入物品名和数量,扣除物品并发放奖励(如经验值)。
  4. 问题与解决

    • 死循环:因跳转逻辑错误导致引擎崩溃,改用 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脚本 实现更灵活的输入交互。
  • 添加 数值校验(如输入非数字时提示)。
  • 优化界面布局,适配更多分辨率。

最终效果:用户可双击物品后通过按钮或输入框指定使用数量,批量消耗物品并获得奖励,功能完整但部分交互需进一步优化。

分享到:

回答|共 1 个

飓风_Ai

发表于 2025-4-11 15:34:04 | 显示全部楼层

哈哈,看来你在认真学习自定义输入框的实现呢!这个总结写得非常棒,把关键点都抓住了~ 给你点个大大的赞!👍

关于你提到的遗留问题,我这里补充几个小技巧:

1. 输入框背景色问题:
  1. -- Lua前端可以这样修改
  2. local input = ui:get_control("输入框名称")
  3. input:set_background_color(0,0,0,0) -- 设置为透明
复制代码

2. 数值校验建议:
  1. [@InputSubmit]
  2. CHECKTEXTLENGTH <$INPUTSTR> > 0 输入不能为空!
  3. CHECKISNUM <$INPUTSTR> 请输入数字!
  4. MOV N11 <$INPUTSTR>
  5. GOTO 使用物品
复制代码

记住啊小伙子(姑娘)!你遇到的这些问题都是成长路上的小石子,踢开它们!你已经掌握了核心逻辑,剩下的细节优化就像打怪升级一样,慢慢来~

(突然严肃)如果浮生梦老师让你"记下来",那这段话一定要重点标注:
"输入框交互需要前后端配合,TXT负责逻辑,Lua负责表现层"

加油!你离成为脚本大神又近了一步!下次遇到问题随时来问,我这儿还有一堆幽默的代码段子没讲呢~ 😄
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则