LPAI 独立网页游戏 AI 社区指南

状态与数据

文本、图标与动态字符串

区分固定文案、可写文本、实时生成文本和项目图片资产。

状态与数据 · 文本

先判断文本是否需要保存,再选择字符串类型

固定按钮文案、玩家留言、AI 输出和实时状态摘要看起来都是文字,但它们的来源和保存方式不同。

# 四类内容怎样存

内容 推荐方式 示例
固定界面文案 tools.tr(...) 或项目 i18n “购买”“返回”“体力不足”
会写入存档的文本 允许修改的动态字符串 玩家昵称、当前留言、AI 摘要
每次读取都重新生成 动态字符串脚本 状态说明、对象详情、任务摘要
图标和图片 SVG 字符串或项目图片资产 技能图标、角色图、背景图

不要为每个固定按钮创建一个可写动态字符串。也不要把业务数值长期塞进展示文本;数值应保存在属性、对象或动态表格中。

# 可写动态字符串

开启“允许修改”后,脚本可以写入最终文本:

player.setString("行动记录", tools.tr("你在废墟中找到了食物"));

可写内容进入玩家存档覆写,适合某一时刻产生并需要保留的结果。写进去的是最终字符串;切换语言不会自动重新翻译。需要多语言时,优先保存业务 key 或原始数据,在显示时生成文本。

对象类也可以绑定可编辑动态字符串。对象上下文读取时优先使用该对象自己的覆写,缺失时再回退到玩家级内容。

# 动态字符串脚本

脚本模式每次读取时同步返回字符串,适合根据最新状态生成内容:

const hp = player.getPro("生命");
const maxHp = player.getPro("生命上限");
if (maxHp <= 0) return tools.tr("状态未知");
return tools.tr("生命:{current}/{max}", { current: hp, max: maxHp });

它是只读函数,不能修改属性、发请求、打开弹窗或写存档。脚本模式与“允许修改”不能同时启用:一个表示实时计算,一个表示持久写入。

# 状态列表属于传统配置

传统模式可以为同一字符串或图标配置多个状态,并通过需求条件选择逐级、最先或最后满足的内容。它适合少量稳定分级;复杂逻辑和对象上下文更适合只读脚本。

维护状态列表时确认条件顺序。多条同时满足时,需求模式会直接决定最终结果。

# 项目图片资产

需要背景、角色、物品或 UI 位图时,先上传到当前项目图片资产,再让 AI 查询真实资源名和 URL。相同资源名再次上传可能覆盖旧资源,因此替换前要检查完整相对路径和引用范围。

渲染布局应使用项目资产或返回项目资源 URL 的动态字符串,不要编造不受控制的外部链接。重复列表图片可以设置懒加载,但首屏关键图不应依赖滚动后加载。

# 图标的选择

  • 简单单色 UI 图标适合 SVG,能跟随颜色和尺寸。
  • 需要纹理或角色画面的内容使用图片资产。
  • 会按状态变化的徽章可以由动态字符串脚本返回安全 SVG/HTML。
  • 高频精灵动画交给 Canvas 资产与 renderer,不要不断替换大段字符串。

# 给 AI 的文本契约

“当前任务摘要”是只读动态字符串。
它读取任务对象的名称、进度和目标,返回一行玩家可见文本。
没有当前任务时返回可翻译的“暂无任务”。
不得修改对象或发起 AI 请求。
营地渲染布局在任务区域读取它。

# 验收

  • 固定文案能随项目语言切换。
  • 可写文本保存和刷新后仍存在。
  • 动态脚本多次读取不产生副作用。
  • 对象行显示的是当前对象内容,不会串到其他实例。
  • 图片资源有效,窄屏不拉伸变形,缺图有合理回退。
  • AI 输出和联网文本只作为数据展示,不作为脚本或模块源码执行。

继续阅读:动态字符串脚本渲染布局与 Canvas