世界,你好
这里是同人社团凌山坊。
欢迎收藏此网站以关注我们的后续进展!
加载过慢请开启缓存,浏览器默认开启
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
1 | $ hexo new "My New Post" |
More info: Writing
1 | $ hexo server |
More info: Server
1 | $ hexo generate |
More info: Generating
1 | $ hexo deploy |
More info: Deployment
符卡练习场景完成动画系统重构,利用自制轮子中的线性平动飞入/飞出函数,实现BOSS列表与符卡列表之间的平滑切换动画,效果连贯自然。动画期间按键锁定,防止输入干扰;延迟回调作为状态切换触发器,确保飞出动画完成后再执行数据切换。
BOSS选择功能完成扩展,在符卡练习入口前插入难度选择独立场景,通过栈压入方式保持各场景职责清晰。进入符卡练习后按传入的难度筛选对应BOSS列表,实现按难度分组的浏览逻辑。横向上支持多难度列轮播,纵向上展示当前难度下所有BOSS。
水平多列轮播模块完成设计,新建独立文件管理动画坐标与透明度计算,不进行实际渲染,与场景层解耦。模块处理列切换时的缓动飞入/飞出动画,场景层通过接口获取每行文字的坐标与透明度并执行绘制,降低场景代码复杂度。
数据层完成非符练习准备,为_sc_table新增显式难度字段,通过解析内部类名中的冒号后缀自动归入对应难度列。同时设计逻辑BOSS注册表方案,为后续非符练习扩展预留接口。
修复渲染与交互问题:调整文字初始坐标使其在动画首帧即位于可见区域;统一渲染字体名与包围盒参数;清理按键分支冲突与语法错误;补充轮播模块公共方法挂载,确保场景侧正确调用。
符卡练习BOSS分组功能完成:在现有场景内部通过状态切换实现BOSS选择与符卡浏览的分层导航,无需新增独立场景栈。数据层从_sc_table提取唯一内部类名构建BOSS列表,并建立映射表支持按BOSS筛选符卡。选择BOSS后进入该BOSS的符卡浏览模式,确认符卡后压入自机选择场景,返回键回到BOSS选择状态。
文字渲染问题修复:重构后的渲染回调中使用了未加载的字体,且渲染坐标参数格式错误导致文字不可见。将所有文字渲染恢复为已加载的字体,并修正坐标为标准的单点格式,使BOSS列表和符卡列表的文字正常显示。
BOSS选择界面显示内容确认:BOSS选择列表直接使用内部类名作为显示文本,符卡浏览界面则通过_editor_class转换为显示名,两者互不影响。改动集中在单行文本赋值上,不影响整体分组逻辑。
符卡练习架构决策与数据层设计:针对“选择BOSS后再浏览符卡”的需求,确认不新增独立场景栈,而是在现有场景内部通过状态切换实现BOSS选择与卡片浏览的分离,保持栈结构简单。数据层方面,由于存在LSC等需要将多个内部类名合并到同一逻辑BOSS下的情况,设计了逻辑BOSS注册表方案,通过显式注册将不同内部类的卡片归入同一显示BOSS,替代依赖命名约定的不可靠分组方式。(并未实际应用)
代码完善与渲染问题修复:对符卡练习核心注册文件完成注释,便于后续维护。同时修复过渡关卡文字不可见问题,原因在于背景绘制函数末尾切换了视图模式导致后续文字渲染坐标系错误,通过显式切换回UI模式解决。
自机选择场景替换完成:符卡练习确认后压入的自机选择已从旧版文本列表替换为轮播立绘界面,每个自机构建时补充立绘与介绍图字段,与主菜单保持一致。关卡练习与符卡练习共用同一数据源,练习模式补全介绍图字段后即可与主线保持相同视觉表现。
非符练习与BOSS分组功能关系确认:两个功能为上下游关系,第一步重构数据层(按BOSS分组并新增非符注册表)无外部依赖可独立推进,第二步在场景中增加BOSS选择与表切换逻辑依赖第一步的数据结构。
符卡练习自机选择场景替换:将符卡练习确认后压入的自机选择从旧版文本列表替换为轮播立绘选择界面。每个自机条目新增立绘与介绍图字段,与主菜单自机选择保持数据一致,确保练习流程中自机选择的视觉与交互体验统一。
自机数据表字段确认:确认第4项为立绘贴图名、第5项为介绍图贴图名,关卡练习与符卡练习两套自机选择函数均基于相同数据源构建,差异仅在于是否携带介绍图字段。练习模式自机选择补全该字段后即可与主线保持相同表现。
关卡练习自机选择函数定位:明确关卡练习自机选择由主菜单场景控制,与主线自机选择共用同一数据表,修改练习模式自机展示内容只需在该函数中调整表的构造字段。
架构决策明确:确认符卡练习采用分层导航结构,BOSS选择与卡片浏览在同一场景内通过状态切换完成,自机选择作为独立场景压栈,不与其他菜单耦合,避免混合菜单带来的输入复杂度和维护成本。
符卡练习根本问题解决:经排查,重构后UI_init遗漏了sc_pr.lua文件的加载,导致符卡练习关卡实例未注册,后续所有关于组缺失、玩家数据未初始化等报错均源于此。补全文件加载后,练习场景恢复正常,此前在SCPracticeScene中进行的手动组创建、回调绑定等修补代码已全部清理。
符卡调试功能修复:旧版调试器依赖已被移除的旧菜单类,导致加载报错。重新设计调试入口,将调试数据存储与关卡注册分离,并在主菜单入口中增加检测分支。当编辑器设置调试标志时,自动跳过主菜单直接进入自机选择,选完后启动调试专用关卡,全程复用现有菜单框架与练习逻辑。
BOSS扭曲特效与版面偏移适配(并未调试成功):分析后确认扭曲特效作用于后处理阶段,UI层不受影响。解决版面下移后特效扭曲出空洞的问题,根源在于特效中心坐标计算未跟随世界视口偏移。通过修正坐标传递链路,使特效中心与BOSS在屏幕上的实际位置同步。
符卡练习场景完成启动流程修复:解决因关卡组缺失导致的选择自机后报错问题,通过补全过程组注册及关卡实例关联,使符卡练习能够正常进入。后续又针对玩家数据未初始化、阶段点引用错误等问题逐一排查修复,最终实现符卡练习从选择到进入关卡的完整通路。
非符练习功能完成架构设计(并未采用本架构):明确当前符卡表为扁平结构,非符数据分散在各BOSS脚本中。决定采用统一注册方式,将非符按出场顺序插入练习条目表,保持与符卡相同的浏览与启动逻辑,场景层无需大幅改动,仅在确认时传递练习类型标记,供启动关卡区分符卡或非符。
关卡组管理模块完成重构规划(并未重构):分析现有文件存在的职责混杂问题,提出按功能拆分为关卡组数据结构、通用帧逻辑、练习模式启动、关卡切换与录像控制等独立模块的方案。重点解决练习模式对主线关卡组结构的错误依赖,使符卡练习等特殊流程拥有独立的启动路径,不再受组查找和帧函数覆盖的副作用干扰。
主菜单交互持续完善:完成资料馆子界面的坐标与动画行为确认,区分实例相对坐标与屏幕绝对坐标对入场动画的不同影响;调整世界坐标系偏移以适配新版直线血条位置,同时保持UI背景固定;修复子场景返回后的状态恢复逻辑。
场景栈与实例管理机制梳理:场景栈仅记录压入顺序,不参与渲染或动画;每次压入场景类都会创建独立实例,各自维护自身状态。入场动画的实质是基类逐帧修改实例的坐标属性,子类渲染时使用该属性即可产生滑动效果,不使用则不受影响。
世界坐标系偏移调整:为解决新版直线血条与版面之间空间不足的问题,采用引擎提供的世界坐标系独立偏移系统,在不影响游戏内背景(固定于UI层)的前提下整体下移版面位置。血条通过世界边界转换函数自动跟随偏移后的版面,无需额外修改。
血条倒计时渲染问题排查:确认倒计时数字由上级UI组件统一驱动,无需在血条渲染中手动调用。若数字未显示,应检查状态开关及上级UI的组件调用链是否完整,而非在血条内部重复渲染。
UI系统完成重构拆分,消除原有单文件混杂加载、绘制与HUD的职责混乱问题。新结构按功能分层,统一管理两种屏幕比例的布局参数与资源加载,废弃旧版重复配置,所有菜单场景通过统一接口获取坐标和背景,为后续适配宽屏留有余地。重构过程中修复了因加载顺序错误引发的多处启动报错,并清理了重复包含的模块文件,确保关卡组正常进入。
对Boss系统进行整体架构梳理,明确各模块负责的行为控制、UI组件、符卡定义、对话、特效等职责。分析指出现存问题:新旧两套UI代码并存、全局变量滥用导致多实例冲突、大量硬编码坐标未适配宽屏、多玩家支持不完整、资源加载分散、模块间耦合过紧。据此提出后续清理废弃代码、解耦、统一坐标体系等重构方向。
重写Boss血条渲染,废除原有圆形血条及复杂的样式分支逻辑,改为与版面同宽的直线血条,紧贴版面上方,扣血方向从右向左。统一使用符卡颜色,阶段节点改用伤害量计算水平位置;时符或时非符状态下改为显示灰色倒计时进度条。移除旧有的透明度随玩家距离变化功能,修正阶段点数据含义(由角度转为伤害量),新血条与系统字段兼容,可直接替换原有渲染。
主菜单交互继续完善:选项支持循环滚动,X键快速跳转至退出选项,选中与未选中项视觉区分更清晰。子菜单扩展机制规范化,提供通用场景框架模板,明确压栈与返回流程,区分纯退出与携带状态返回两种类型,确保任意深度嵌套后父场景状态正确恢复。