错误原因我在上一轮加回收功能时,为了"修位置回正"加了 else 分支:当牌既没拖到回收区、也没合成目标时,强制把牌弹回原位。这破坏了 Stacklands 的基本交互——拖到空地就该留在那里。-- ❌ 错误版本(多余的 else 导致拖到空地也弹回)if inRecycle and not card.locked then ...回收溶解...elseif self._mergeTar
下面是这轮三个问题(音量滑块、拖动闪跳、选角页闪跳/白屏)的可复用经验与对应关键代码。代码均为磁盘最终落地版本。经验一:拖动控件别在回调里重建整棵树滑块/开关这类"边拖边回调"的控件,onChange 里只能原地改值,绝不能触发 BuildXxxUI() 整树重建——否则正在拖的滑块会被销毁,拖动中断。音量百分比标签也是同理,用闭包持有引用做原地 SetText。scripts/bullbe
结论目前 300/300MB 的主要原因已经明确,不是网络偶发问题,而是同时存在两层“全量加载”:构建配置要求所有资源入包,并在启动前全部下载客户端启动后,又主动创建了所有遭遇动画的 152 张纹理所以当前行为本质上是:先把整个资源仓库下载完,再一次性把大量遭遇动画解码进内存。1. 第一根因:配置为“全量引用 + 全量预下载”当前配置是:groups.default = ["**"]
nvgCreateImage 在 WASM 环境下无法正确加载图片文件(中文路径/资源未打包进虚拟文件系统),返回看似正数但实际无效的纹理句柄。Lua 中 0/-1 都是 truthy,if 判断通过后把无效句柄传给 nvgImagePattern,C 层访问空指针 → WASM 内存越界。彻底解决方案:纯矢量绘制,零文件 I/O完全放弃图片加载,用 NanoVG 基础图元(圆/椭圆/描边)绘
调查结论问题已查清:牌面文字本身没有异常,也不是 NanoVG 重复绘制。真正原因是每名玩家或 AI 投币后,客户端都会销毁并重新创建整个战斗 UI。左右牌文字、牌框、顶部头像、底部状态栏都在同一棵 UI 树中。因此本来只需要更新底部投币槽,却连带让红框内的牌面文字反复重新布局和渲染,表现为“闪烁几下”。直接证据Client.BuildPlayingUI() 每次先销毁现有根节点:scr
一、整体架构校准系统由四层组成:层 文件 职责状态容器 Client.lua 保存 lobbyCalibrationMode_/Drag_/Slots_/RestorePending_/SaveStatus_、路径常量、管理员标记拖拽 + UI ClientUILobby.lua 指针事件包装、归一化坐标、实时预览、设置面板序列化 ClientStorage.lua 本地 pref 读写
1. 数据常量(RationalityData.lua)M.INITIAL_VALUE = 100 -- 新玩家初始理性值M.MAX_VALUE = 100 -- 理论上限M.REMEDY_MAX_VALUE = 90 -- 药剂恢复封顶M.REMEDY_REQUIRED_MAX_VALUE = 89 -- 药剂可用阈值(理性≤89)M.REMEDY_COST = 3 -- 药剂价格(宝
问题演进轮次 方案 失败原因1 File("save.pref", FILE_WRITE) WASM MEMFS 刷新即丢失2 clientCloud:SetInt("music_enabled", 1/0) 写 0 被后端吞掉;HTTP 请求刷新时被浏览器取消3 clientCloud:Set("music_enabled", "off") 同上,HTTP 不可靠4 serverClo
这张卡的主题很适合《友谊的小船》,但按原始数值直接落地会有一个关键问题:右牌严格优于左牌,四人局会趋向全员选右,博弈不成立。先评估原方案选择 未扎堆 同侧≥3人 结论左:追高 -15万 -40万 始终比右牌更痛右:抄底 -10万 -25万 任意人数下都更优无论同侧人数是多少,右牌都少亏:未扎堆:右牌少亏 5万扎堆后:右牌少亏 15万所以理性玩家没有选择左牌的理由;最终通常会四人全选
一、本次反复失败的根因(三个坑)现象 根因按钮完全不可见(空白/小白点) 入场动画把 scale/alpha 初始设 0,靠 Update 驱动 Tween 补到 1;但该模板页面级 Update 时序不可靠,补间不推进 → 永远停在 0背景/按钮颜色反转 用了 nvgRGBA(r,g,b,255) 整数版,出现通道映射异常矩形在、文字消失 文字色≈填充色;或 DrawStrokedTex