易玩(上海)网络科技有限公司
公司地址:上海市静安区灵石路 718 号 B1 北楼
注册地址:上海市闵行区紫星路 588 号 2 幢 2122 室
投诉举报邮箱:kefu@taptap.com
恢复健康值后,重进游戏健康值回到之前的值
找到问题了。让我分析 doMarketBuyWithAccount 的逻辑:服务端逻辑(Server.lua 第 1278-1354 行):食物购买时正确修改了 stats.health(第 1312 行)正确调用了 serverCloud:Set(userId, STATS_KEY, stats, ...) 保存保存成功后,发送了 MARKET_BUY_RESULT 和 STATS_LO
粘土从洞口滚出来、由小变大
现在我清楚了整个动画系统。需要给 clay 类型的掉落物做一个"从洞口滚出来、由小变大"的动画。让我看一下 main.lua 里挖矿时传入的坐标,以及矿洞口相对于山体格子的偏移。粘土滚出动画已完成,修改内容:renderFunc 应用 rollScale:将固定的 drawW/drawH 改为根据 d.rollScale 动态计算,粘土在滚出过程中从 0.3 倍大小平滑缩放到 1.0 倍大小。
留言墙的碰撞体积门槛条
数据分析从代码中得到的关键信息:参数 值 说明BRICK_DRAW_W 16px 单块砖在反旋转坐标中的宽度BRICK_DRAW_H 8px 单块砖高度MAX_BRICKS_PER_ROW 6 每行最多 6 砖bx 坐标 0 为锚点中心,-1 左移一砖,+1 右移一砖 砖的水平逻辑坐标柱子宽度 pillarW = 48, pillarVisibleW = pillarW * PILL
碰撞体积偏移了
现在我明确了:row/col 是建筑的左上角(1-based 网格坐标)渲染锚点在建筑矩形的底边中心:cx = (col-1 + sizeW*0.5) * ts, cy = (row-1 + sizeH) * ts碰撞标记当前是从 (row, col) 到 (row+sizeH-1, col+sizeW-1) — 即整个建筑占用的网格区域现在让我深入理解碰撞偏移的根因。问题的核心是:在等距
深度排序算法修复
问题:之前的排序只使用 sortRow(网格行号),存在两个缺陷:忽略旋转角度:等距视角有旋转(Q/E),但排序没有考虑列号的影响。同一行不同列的树,在旋转后深度是不同的排序不稳定:同行号的实体排序结果不确定,随视口变化(玩家移动)会变动修复方案:使用旋转感知的深度排序键:sortKey = cx * sin(rotation) + cy * cos(rotation)这就是内容坐标 (
首次砍树无掉落动画
需要查看掉落动画代码。现在理解了整个流程。让我确认 gameTime 的初始化问题 — SpawnDrops 用 self.gameTime 作为 spawnTime,但首次砍树时 gameTime 可能还是 0 或很小。但更关键的问题在于:_SyncNPCEntries 中的 nvgCreateImage 是在 renderFunc 闭包内调用的(即在渲染时而非同步时)。首次渲染时创建纹理,
集市窗口晃动
OnMarketStockUpdate 重建弹窗 → ShowModal 再次请求库存 → 服务端响应 → 又触发重建,形成死循环。问题清晰了:ShowModal 调 requestMarketStock_() → 服务端响应 → OnMarketStockUpdate → 重建 ShowModal → 再调 requestMarketStock_() → 无限循环。加一个标志位打断。问题 1
【踩坑经验】
双数据源查找 — FindNearest 必须同时搜索动态资源数组和 resourceGrid 预置资源,否则"站在资源旁边却找不到"等距视角下落动画 — 用 visualHeight(屏幕空间偏移)而非内容坐标 Y 偏移,否则掉落物会沿对角线飘而不是垂直下落错开掉落节奏 — WAITING 状态 + 递增延迟(0.15s),避免多个掉落物同时落地通用复用框架:三层分离架构(资源系统 →