下载 App

【聚光灯21天】DAY8·显影记:七个看不见的 bug,和转了四遍的罗盘

修改于10/206 浏览 包含 AI 合成内容
TapTap
今天没有一个新玩法。整天都在做同一件事:把"已经能跑"的东西,变成"看着对"的东西。
而这一天的敌人,全都长着同一张脸——它们不报错。构建全绿、日志干净、游戏起得来,只是某条线不见了、某段字没出来、某个角露出去了。七个 bug,七个都不崩。

七个不崩的 bug

我把它们排在一起,因为查完之后发现:七个里有六个,根因是同一个无知——我对布局引擎默认值的想象,和它真实的行为不一样。
#表象真根因
1小标题「选择剧本」只有金线和菱饰,文字整段消失Divider 里的 lbl 没传 wrap=false。whiteSpace="normal" 在宽度不定时,把文字折进 0 宽度
2两条金线整根不见Divider 用 width="100%",但父级是内容自适应列 → 百分比解析成 auto → 两个 flexGrow 金线分不到宽度,宽 0
3立绘从卡片抹角处露出去库的 overflow 裁剪走 nvgIntersectScissor,只能裁矩形;borderRadius + overflow:hidden 对 backgroundImage 无效
4罗盘中心一块半透明方块同因:图片按矩形填充 + 矩形裁剪,圆外的四个方角残留
5匾额里的竖排局名,「仓」飘到匾额上方字号按卡高定,没按字数自适应——4 字名比匾额本身还高
6顶栏整体偏下顶部留白按 vw×3% 算。横屏下 vw×3% 折算成高度是 5.3% 屏高,不是 3%
7难度胶囊悬停,边框外有东西胶囊是尖头形制,阴影只能按圆角渲染——圆弧总比尖角宽,负 spread 也压不住
第 1 和第 2 是同一个组件的两层坑,我第一遍还修错了方向:第 2 条我以为是"1px 矩形被缩放舍成 0 高",改成描边线,还是不见。第二次才想通是宽度塌陷,不是高度。
第 3 和第 4 也是同一个根:矩形裁剪裁不了非矩形。第 3 条的解法是自己写了个按路径裁剪的图片控件——第 4 条则更简单,直接用圆形路径填充图片,路径即圆,圆外自然不画。
记两条纪律:
  • 横屏布局,左右边距按屏宽算,上下边距按屏高算。 混用会在 16:9 上放大 1.78 倍。
  • 百分比宽度只在父级宽度确定时有效。 父级是内容自适应(靠 alignItems 居中)时,100% 会解析成 auto。

一只罗盘,转了四遍

TapTap
选择页的朝代罗盘,今天改了四遍。四遍都不是我想通的,是你指出来的——和 DAY 7 的布局三次改版一样。
版本交互被否的原因
一点中朝代,自动转到正上方不像罗盘,像下拉菜单
二拖拽跟手转,松手吸附最近一格吸附太慢,停不稳
三改成拨盘弹簧:冲过目标一点再回摆;底板整体旋转指针和菱饰不跟着转,像"字在绕圈、盘不动"
四两段动画:①底板先转,指针指认到该朝代;②再整体归位这是你要的
第四版有个数学上很舒服的性质。要做到"指认 → 归位"两段,必须把角度拆成两个变量:
  • base_ —— 盘面旋转量。指针烘焙在底板顶部,所以指针绝对角 = TOP + base_
  • nameOff_ —— 朝代名的基准角,第 i 项名在 nameOff_ + (i-1)·step
归位时两个一起转回,两者的相对角不变 —— 所以指针全程锁在选中的那个名字上,不会出现"归位过程中指针指错"的跳变。一个拆分,省掉一整类状态同步 bug。
顺带抓到一个既有 bug:指针事件的坐标是控件局部的,但原来的点击判定拿它去减 GetAbsoluteLayout 的绝对中心 —— 也就是说,点环上的位置,方位算出来是错的。改成用控件自身尺寸,和事件坐标同一坐标系。

两笔账

资源账。 构建产物一直没看,一看:87 个文件、54.4MB。里面躺着 37MB 的效果图设计稿、2.1MB 的开发日志配图、0.8MB 的 GDD 文档——它们全被 groups.default = ["**"] 全量打进了包。更麻烦的是其中 11 个资源路径含中文(上传素材时的目录名)。
改成显式白名单后:55 个文件、15.0MB,中文路径清零,运行时资源一个不少。
附带发现:groups 里的 !排除 规则不生效,只能用白名单。这意味着今后新增 assets/ 一级目录要同步加白名单,否则不会入包——已记进维护清单。
立绘账。 美术交付了 13 张新立绘,原件 2048×3072 起、单张 3–11MB。缩到运行时的 512×768 后,单张 0.4–0.66MB,总体积又降了 3MB。转换脚本落盘(prot/portraits-import.py),下次交付直接重跑。
顺手抓到一个命名笔误:源文件叫 zhanggan,但角色是章邯,应为 zhanghan。已映射修正。

一个不是我的 bug

预览日志里一直有一条:
ERROR: Error executing Lua module 'LuaScripts/Utilities/Previews/Isolation_Client':
       :186: attempt to index a nil value (local 'class')
我一开始怀疑是自己的资源有问题,改了两轮都没消。
后来换了思路:把引擎那个 94MB 的 .data 包扒开,找出模块源码。第 186 行是 local orig = class[methodName] —— 调用时传进来的 class 是 nil。
而决定性的是引擎自己写得不一致:同一份代码里,兄弟函数 BlockMethod / BlockProperty / RemoveMethods 全都有 if not class then return end 守卫,唯独 WrapPathMethod 漏了。引擎作者明确知道"类可能是 nil",只是忘了这一个。
又查了当天刚发布的 latest 引擎版本(1.32.38)——同一行一字不差,仍无守卫。升级修不好。
这条只能报给引擎侧,修法是一行。 而我们这边其实没受影响:日志显示,报错之后 110 毫秒就是我们自己的启动输出 —— 引擎用 pcall 把它兜住了,游戏照常起。一个不崩的 bug,连引擎自己都不打算崩。

视觉:定下"宋韵"

晚上把主菜单页和对局页的效果图定了方向:参考宋画气质——宣纸底、淡墨远山、梅花竹枝孤舟、书法标题配朱印、右下角落款。
两张稿都按真实内容排:主菜单是那五个菜单项,对局页是李斯的真实正文、真实雷达图(突破/武力/才学/谋略/辩才)、真实三个选项。不是占位符效果图,是能照着落地的。

明天

  1. 按宋韵稿把主菜单页与对局页的代码 UI 调到位(布局用代码,只从稿里抠梅花/竹枝/卷框这三件纯代码做不出的装饰)
  2. 引擎隔离模块的 nil 守卫,整理成最小复现报给引擎侧
  3. 真机验收:罗盘四版交互、立绘抹角、悬停反馈
horizontal linehorizontal line
载体:UrhoX 引擎(wasm + Lua) · 语言:Lua · 状态:选择页打磨完成,主菜单/对局页待按宋韵稿重构 · 对拍网:100/100 全绿 · 构建产物:55 文件 / 15.0MB
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合截图
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合
大家好,我是一个人报名了 2026 聚光灯 21 天游戏创作挑战 的独立开发者。今年主题公布那一刻我就笑出了声——涌现。因为我已经想做这个游戏很久了: 《气味之城》:你不是猫神,你只是一只猫。 先说一个所有养猫人都懂的事实:你永远无法"教会"一只猫任何它自己不想学会的事。但你家猫可能自己学会了——听见冰箱开门就瞬移到厨房;你心情不好时过来踩奶;凌晨三点准时在你身上练马拉松。没人教过它,这些行为是它
3 赞
6 回复
《卡牌工业》开发日志 01|从“涌现”到产线对打截图
《卡牌工业》开发日志 01|从“涌现”到产线对打
大家好,我们正在用 Godot 做一个暂名《卡牌工业》的游戏。目前已经跑通了最小的生产与战斗循环,也做了两轮迭代。这篇先记录一下:面对“涌现”这个题目,我们讨论过什么,又为什么最后收敛到卡牌和工厂。 第一步:头脑风暴,涌现可以是什么? 刚看到“涌现”这个题目时,我们的想法几乎朝每个方向散开了。塔防、物理搭建、探索、解谜、经济系统、叙事,甚至增量游戏,都能让简单规则在玩家的操作中长出新的结果。再想下
1 回复
【童谣镇】聚光灯第二次开发日志截图
【童谣镇】聚光灯第二次开发日志
开发进度: 美术 1、主角人物立绘已细化完成 2、所有NPC的QQ人形象与呼吸动画已设计完成 3、大部分UI界面已设计完成 4、面包房建模与树屋建模以及基础房屋、路灯、树木模型已完成。 5、制作过场动效,制作通用动效材质ing 6、广场资产替换、永续桥和植被的资产替换、房屋资产替换,河流制作 7、学校模型的材质完成 8、石墩子、小道具模型制作ing 9、NPC正比胸像绘制ing 策划 1、任务系统
11 赞
10 回复
00:07
雨天決行 开发者日志02-人工智能的自我修养截图
雨天決行 开发者日志02-人工智能的自我修养
又和大家见面啦!第二篇日志,说实话一开始不知道该怎么编排,但团队里惊喜的成果越来越多,我们已经迫不及待把更新的内容端上来给大家啦!那么事不宜迟,快来看看都有什么新情报吧ദ്ദി˶ー̀֊ー́ )✧ 一.美术(重磅升级) 以主美小为的生命力作为燃料(bushi)本次美术组取得了大进程!首先是各个ui界面的优化和细化,上次大家看到时还只是初具雏形的草稿,现在大多都完整起来了哦! 同时,随着配色的补全,手
43 赞
36 回复
00:30
《失心》游戏开发者日志01|游戏UI迭代及实机演示截图
《失心》游戏开发者日志01|游戏UI迭代及实机演示
进入《失心》之前,玩家首先看到的是我们工作室 UNLOOK 的标识。我们将原来的标识转成 SVG,并让其中的红色瞳点转动、观察,再逐步显露完整字形,希望这个短暂的开场能带出一点好奇和不安。 这次《失心》的开局 UI,我们围绕小灵通(因为游戏的主要交互道具就是小灵通)做了几轮调整,希望玩家从打开游戏开始,就能感受到故事里的年代和气氛(故事年代背景为2000s)。 早期版本先确定了一个方向:把菜单放进
15 赞
10 回复
00:34
《荒原复苏指南》开发日志④:关卡演示堂堂袭来!!截图
《荒原复苏指南》开发日志④:关卡演示堂堂袭来!!
- 人类曾因掌握元素合成技术而一度辉煌,又因滥用元素能量而逐渐从内里衰败。 - 30世纪80年代。社会文化充斥着激进乐观主义与庞大机械美学,在这里,污染和能源共生,幸福与痛苦并存。官方广播和宣传画里依旧在宣扬“科学将战胜一切”、“元素能量将再造新农田”的口号,而世界主城却已经因为污染过度而濒临崩溃、空间挤压严重。为了寻找新的生存空间与无污染能源,官方启动了“重构拓荒计划”。 - 玩家将作为前线拓展
18 赞
6 回复
开发者日志#01:涌现!! 披着科幻外衣的涌现式增量游戏!!!!截图
开发者日志#01:涌现!! 披着科幻外衣的涌现式增量游戏!!!!
随着Game Jam 主题公示,我们团队立马着手维持了三天的激烈讨论!决定做一个披着科幻外衣的蚂蚁农场以boids算法为灵感的涌现式增量游戏!!! 至此,方案敲定,我们团队将开发一个可升级的自主群体模拟,并且初步规划了玩家游戏时的体验流程: (1)阶段1(开局30s,触发痛点,会有一次提升,但是游戏仍然艰难):一张地图分布着资源点和仓库,玩家此时只能徒手采集资源点的矿石拖入仓库,矿石可以造机器人;
14 赞
7 回复
【2026聚光灯日志01】什么叫你把手牌,骰子和战棋融合了?截图
【2026聚光灯日志01】什么叫你把手牌,骰子和战棋融合了?
大家好啊,我是官方小编,一位还在学校的独自开发的苦逼带学生 这次算是第二次正式参加GameJam,而这回的比赛主题是【涌现】 嗯…老实说,一开始我还真只是从中文语义上来看,理解成“大量的出现”,直到询问ai哦哦哦我这就才想起来还有英文的“整体大于部分之和”意思来着 说起这个主题的意思,立马想起的类 吸血鬼幸存者 ,或者是 文明 系列的各种爆怪,爆兵的设计,即大量的出现敌人或者单位 而从第二个
4 赞
4 回复
00:10
群迹·上取其下,下取其上截图
群迹·上取其下,下取其上
#聚光灯gamejam开发者日志 向大家汇报一下今日进度,目前在和蚁群的默认移动算法进行斗智斗勇。或许是我的AI对蚂蚁有别样的理解,其实最初写出的方案更接近于围绕着恒星公转的行星。 哦我还以为文章里可以插入多支视频视频,想要展示一些其它的运动方式,可惜了。那么就简单在上方传一个比较典型的,有点类似于蟑螂的运行方式。 目前仍在解决蚁群的随机运动,和玩家可操纵性之间的平衡问题。以及如各位所见,目前的
4 赞
1 回复
开发者日志 ⑤ · 世界定稿、游戏提审,以及用参考图让 AI 做 UI截图
开发者日志 ⑤ · 世界定稿、游戏提审,以及用参考图让 AI 做 UI
游戏:《涌现之野》| 单人 · TapTap 制造 · 双端(PC / Android ) 覆盖区间:10.16 – 10.20(开发第 15–19 天)| 版本 1.0.94 → 1.0.185 【聚光灯 21 天】Day 15–19 —— 世界定稿、游戏提审,以及用参考图让 AI 做整套 UI 上一期(见日志④)给菌林和霜脊填完了生态;这一期做了五件大事:把整个世界推倒重做成有机大陆、把第三张