下载 App

只有茄子的像素图,其他的食材看不到

05/09综合
找到根因了。
BeatSystem.InjectFoods 第 624-635 行,当食物有多个食材时,会拆分成独立食材分别进入 foodPool:
splitData.ingredientKeys = { ingKey }  -- ← 只保留单个 key
每个拆分出的食材单独生成一个敌人,每个敌人的 ingredientKeys 只有 1 个元素。ComposeDishSprite 进入单食材路径(居中满铺),所以每个敌人只显示自己那一种食材的像素图。
3 个食材投喂后,关卡中会生成 3 个独立敌人,每个各显示一种食材——但你只看到了茄子,说明另外两个食材的像素图渲染出来看起来和茄子的形状太相似,或者其他两个敌人从另一方向进入/被挡住了,并不是合成失败。
现在的问题是:这个「拆分」行为是设计意图,还是 bug?
从游戏体验来看,"炒小白菜土豆番茄"应该作为一道菜整体进入口腔,而不是拆散成 3 个独立食材。目前的拆分逻辑破坏了合成精灵的展示效果。
你有两个选项:
方案 A(推荐):保留菜品整体性,1 道菜 → 1 个敌人,显示三角合成精灵
lua
复制
-- 直接整体入池,不拆分
table.insert(foodPool, {
    typeName = typeName,
    foodData = item,
    portions = PORTIONS_PER_INGREDIENT,
})
方案 B:拆分为独立食材,但每个食材显示自己的像素(当前行为),只是多食材菜"散伙了"
找到了根本原因:Map.GenerateDefaultMap() 中定义了3个出生点(spawnRows = {5, 10, 15}),而 BeatSystem 在 influx 阶段随机选取 spawns[math.random(1, #spawns  )],导致拆分的食材敌人从不同方向进入。

现在看看 BeatSystem.lua 中的 influx spawn 逻辑,然后制定修复方案
现在清楚问题所在了。修复方案:在 influx 阶段固定使用第一个出生点(即唯一入口),而不是随机选取。
同时,考虑到用户设计意图(食物从嘴进来,只有一个入口),应该让所有 influx 食材都从同一个入口生成。最优做法是固定用 spawns[1],而不是随机。
buildSpawnQueue 也在循环遍历所有出生点(spawnIdx = (spawnIdx % #spawns  ) + 1)。但更根本的问题是 Map.GenerateDefaultMap() 本身就创建了 3 个出生点(row 5, 10, 15),与"只有一个入口"的设计相矛盾。

需要修复两处:

Map.GenerateDefaultMap 改为单一入口(左侧中央)
buildSpawnQueue 也固定用第一个出生点
Bot Avatar
现在 buildSpawnQueue 也要固定使用第一个出生点(虽然现在 default map 只有 1 个,但保险起见也要一致):

Bot Avatar
现在构建验证:

Bot Avatar
构建成功。修复总结:

问题根因:Map.GenerateDefaultMap() 定义了 3 个出生点(row 5, 10, 15),而 BeatSystem 在 influx 阶段随机选取,导致拆分的食材敌人从 3 个不同位置进入地图。

修复内容(2处):

Map.lua(GenerateDefaultMap):将 3 个出生点改为单一入口(地图左侧中央),符合"食物从嘴进入、只有一个通道"的设计。

BeatSystem.lua(buildSpawnQueue + influx 阶段):

buildSpawnQueue:移除循环轮换 spawn 点的逻辑(spawnIdx 轮转),改为固定用 spawns[1]
influx 阶段:将 spawns[math.random(1,
#spawns  )] 改为 spawns[1]
现在所有食材(无论是拆分的还是单个的)都会从同一个入口进入,与"一个入口一个出口"的设计一致。
根因确认:第 627 行 for k, v in pairs(item) do splitData[k] = v end 把 bindNpcName(绑定的是小白菜的 NPC 图)复制给了茄子和土豆的拆分条目,导致三者都用同一张 NPC 图。
修复:拆分时清除 bindNpcName,让每个子食材走 ComposeDishSprite 路径显示自己的像素图
问题根因:BeatSystem.InjectFoods 拆分多食材菜品时,用 for k, v in pairs(item) do splitData[k] = v end 把母菜的所有字段都复制过去,包括 bindNpcName(绑定了小白菜的 NPC 图)。茄子和土豆的拆分条目也继承了这个字段,所以三者都显示同一张 NPC 图。
修复:拆分后显式置 splitData.bindNpcName = nil,让每个子食材走 ComposeDishSprite 路径,各自显示对应食材的像素图(小白菜 → 小白菜图、茄子 → 茄子图、土豆 → 土豆图)。
【更新】新增驿站+远征地截图
【更新】新增驿站+远征地
官方
2 回复
【更新】平台新版本发布游戏变成了“预约”截图
【更新】平台新版本发布游戏变成了“预约”
今天更新之后,一直奇怪怎么看不到“热度”,变成了“预约” 后面才知道,需要去这里改为 提供游玩 【更新】 1、新增便签墙功能,每一局都有小故事 2、增加了自定义头像
3 赞
1 回复
🚪【权限申请】传送门截图
🚪【权限申请】传送门
需要把ID发到论坛里(ID在游戏右下角),管理员审批。 这里回帖ID就行
7 赞
131 回复
拖到合成目标才留位
错误原因 我在上一轮加回收功能时,为了"修位置回正"加了 else 分支:当牌既没拖到回收区、也没合成目标时,强制把牌弹回原位。这破坏了 Stacklands 的基本交互——拖到空地就该留在那里。 -- ❌ 错误版本(多余的 else 导致拖到空地也弹回) if inRecycle and not card.locked then ...回收溶解... elseif self._mergeTar
官方
【看病得花多钱】这是我的一个想法,作为下一个版本的重要功能。
但目前苦于没有各地各级医院的收费数据,如果有朋友能随手告知一二,我都愿意收集起来,形成这个游戏体验功能。截图
【看病得花多钱】这是我的一个想法,作为下一个版本的重要功能。 但目前苦于没有各地各级医院的收费数据,如果有朋友能随手告知一二,我都愿意收集起来,形成这个游戏体验功能。
精华
2 赞
20 回复
求密码id 如图截图
求密码id 如图
1 赞
1 回复
统一生成素材的话术模板
可以。根据前面对话,建议不要把所有素材塞进同一条模板,因为目前已经形成了两套用途不同、但能共享色彩语言的视觉体系: 抽象概念角色插画:用于“沉没成本、追涨接盘、社会懈怠”等概念角色。 圆形技能徽章图标:用于“紧急避险、控盘信号、护航珍贝”等游戏技能。 下面可以直接保存为项目的统一美术生成规范。 一、统一美术风格总纲 风格名称 金融寓言卡通风 通用风格关键词 卡通手绘风格,金融寓言与社会讽刺主题,粗
官方
UI 按键动画设计经验
从 GDScript (Godot Tween) 移植到 UrhoX Lua + raw NanoVG 的完整经验总结。 版本: v0.3.0 | 日期: 2026-07-28 重要:第 1~9 节是"设计理论 + 自建补间引擎"思路(适合理解原理)。 但在《抓周》这类 Boot/Router/EventBus 模板里实测落地时,靠 Update 驱动补间会让按钮不可见、nvgRGBA 整数色会
官方
【更新】增加了一些任务截图
【更新】增加了一些任务
我从故事便签墙中,看到了大多数玩家都在和野兽、疾病博弈中倒下 我这两天补充了一些任务,有关合成物品的为主 在此感谢大伙儿的积极反馈
1 赞
4 回复
任务
当前任务栏共设计了 2 个阶段、7 个任务: --- ### 襁褓 · 初识世界(5个) | # | 任务名 | 描述 | 完成条件 | |---|--------|------|----------| | 1 | 看见万物 | 开启你的人生初体验 | 初始体验包开出 3 张牌 | | 2 | 伸手触碰 | 拖动任意一张牌 | 拖动 1 次 | | 3 | 万物相遇 | 把一张牌放到另一张牌上 |
官方