152 Commits

Author SHA1 Message Date
dgflash
0b06fcb11e 优化 2026-05-30 06:59:39 +08:00
dgflash
4b9b05fa9f 修复动画效果回收失败问题 2026-05-30 06:50:57 +08:00
dgflash
ddad261b38 优化 2026-05-30 06:30:31 +08:00
dgflash
d4f140077e feat (core): 完善框架核心功能模块 - 音频、对象池、资源加载与组件系统
新增与优化核心模块
🎯 GUI 交互增强
ButtonInterceptor:按钮点击事件劫持器
劫持 EventHandler.emitEvents / ButtonSimple.onClick 核心方法
支持多类型按钮音效配置注册,按按钮类型自动匹配音效
单例模式管理,支持全局动态激活 / 停用拦截功能
🧩 对象池管理系统
GameNodePool:通用游戏节点对象池管理器
基于预制体(Prefab)UUID 实现池化隔离管理
支持特效、UI 元素等高频对象预加载、复用与回收
全局单例访问,统一管控对象创建 / 销毁逻辑
🔊 音频管理系统
AudioManager:音频核心管理器
独立背景音乐(AudioMusic)+ 音效池(AudioEffectPool)双模块
支持全局音量控制、播放状态恢复与场景切换管理
AudioEffect:基础音效播放器
AudioEnum:音频类型、音效分类枚举定义
📦 资源加载系统
ResLoader:资源加载核心控制器
资源包(Bundle)统一管理 + 并发加载限流控制
远程资源本地缓存、自动释放与内存优化
完整加载进度回调 + 错误异常处理机制
ResTypes:资源类型规范定义
ResErrors:资源加载错误码与异常处理
ResUtils:资源路径、格式转换等工具方法
🧱 模块化组件系统
GameComponent:游戏显示对象组件基类
集成资源自动引用计数(RC)管理
模块化部件(GamePartRegistry)插拔式架构
内置音频、按钮、事件、键盘、节点、对象池、资源七大部件
部件封装:
GamePartAudio:音频功能部件
GamePartButton:按钮交互部件
GamePartEvent:全局事件部件
GamePartKeyboard:键盘输入部件
GamePartNode:节点操作部件
GamePartNodePool:对象池调用部件
GamePartRes:资源加载部件
📝 类型定义完善
新增 IAudio 音频数据与播放参数接口
统一全模块 TS 类型定义与导出规范
优化接口注释与类型约束,提升开发体验
2026-05-29 22:55:13 +08:00
dgflash
6a486bbbc6 优化 2026-05-22 22:52:11 +08:00
dgflash
58d145b7dc 优化 2026-05-22 22:22:33 +08:00
dgflash
d33b668810 添加:
1. 自动管理资源引用计数 - 多组件共享资源时不会错误释放
2. 组件销毁时自动释放资源引用 - 开发者无需手动管理
3. 全局资源追踪 - 可查看任意资源的引用者和引用计数
2026-05-17 20:11:06 +08:00
dgflash
3c3b7f4f64 refactor(gui): 提取屏幕适配逻辑到独立 ScreenAdapter 类
- 新增 ScreenAdapter 类,负责屏幕分辨率适配和安全区域适配
- LayerManager 移除 windowAspectRatio/designAspectRatio/mobileSafeArea 属性
- LayerManager 移除 initScreenAdapter() 方法
- LayerManager 添加 screenAdapter 属性,通过组合方式使用

BREAKING CHANGE: 如需访问屏幕适配属性,改为通过 oops.gui.adapter
2026-05-03 21:18:01 +08:00
dgflash
12aedf1491 优化提示 2026-04-29 22:44:22 +08:00
dgflash
b64c03ede8 强类型事件支持传空参数 2026-04-21 12:20:00 +08:00
dgflash
0746948455 fix(GameComponent): 修复资源加载相关的安全问题和内存泄漏
## 问题修复
- setButton: 修复组件名不匹配格式时正则匹配崩溃
- createPrefabNode: 修复预制体加载失败时崩溃,返回类型改为 Promise<Node | null>
- load: 修复资源加载失败时引用计数未移除
- loadAny: 修复加载失败时引用计数未移除
- loadDir: 修复加载失败时引用计数未移除
- playEffect: 修复返回值 null! 非空断言,改为 Promise<AudioEffect | null>
- setSprite: 优化失败处理逻辑,返回 boolean

## 新增功能
- loadDirAsync: Promise 模式的文件夹资源加载
- removePathFromRecord: 私有方法,用于加载失败时回滚引用计数

## 代码优化
- loadAny/loadDir: 使用强类型回调参数
- loadAny: 使用对象数组替代字符串拼接解析
2026-04-05 12:22:28 +08:00
dgflash
b32c550b15 1.规范化框架业务模板的提示信息
2.废弃GameCollision.ts
2026-04-05 11:05:58 +08:00
dgflash
9a4fd82dcf CCBusiness支持事件系统全部功能 2026-04-05 10:52:32 +08:00
dgflash
0e569dc31e 统一框架中d.ts文件风格 2026-04-05 10:26:24 +08:00
dgflash
4d9d2eac96 优化强类型事件类型 2026-04-05 10:19:24 +08:00
dgflash
79d5ee8637 优化强类型事件类型 2026-04-05 10:00:53 +08:00
dgflash
0b808f6ab1 优化CCEntity的addPrefab、addUi异步操作时,对象被释放时空对象问题,提高框架稳定性 2026-03-08 13:59:24 +08:00
dgflash
605e0b8d76 CCView 使用MVVM功能时性能优化 2026-03-08 13:42:41 +08:00
dgflash
2efe3a1982 优化 ECS 和 MVVM 相关代码的性能与可读性
- ECS.ts: 简化实体创建的类型转换,修复实体复用时的 isValid 标记逻辑
- ECSEntity.ts: 添加辅助方法注释,优化组件属性访问
- VMBase.ts: 优化路径解析逻辑
- CCView.ts: 重构 MVVM 路径替换和 VM 组件获取逻辑,提升性能
- GamePrefabDecorator.ts: 优化装饰器中的类型转换

所有变更均为内部实现优化,不影响对外 API
2026-02-26 22:52:49 +08:00
dgflash
13cfa37bf3 框架配置数据支持强类型 2026-02-24 21:50:47 +08:00
dgflash
500f7dcb1c . 2026-02-23 20:12:35 +08:00
dgflash
c5ddb8c100 优化框架中自定义 type 2026-02-23 17:41:50 +08:00
dgflash
aec1a6567f 1. 为 Gui.ts 添加完整类型注解
2.修复 CCBusiness 事件释放方法
3.提取 CCEntity 类型至统一模块,优化 addPrefab 方法
2026-02-23 11:53:30 +08:00
dgflash
2da486bd77 废弃老版图片压缩工具,使用工具集插件中的代替 2026-02-22 22:47:27 +08:00
dgflash
fca918c47c CCEntity.addUi与CCEntity.removeUi支持CCView与GameComponent类型的界面打开与移除 2026-02-22 21:24:44 +08:00
dgflash
a226450564 业务层组件自动绑定到实体属性上,优化开发体验 2026-02-22 18:37:27 +08:00
dgflash
01905f183e 优化显示对象模块的自动化内存管理逻辑 2026-02-20 17:37:27 +08:00
dgflash
e57e26b1ee 优化 2026-02-20 17:28:42 +08:00
dgflash
7295fc6a2a 全局事件支持强类型事件参数 2026-02-20 17:08:36 +08:00
dgflash
88ea999ed0 废弃工具中与版本不匹配的工具,后续使用VSCode插件集成所有工具 2026-02-06 22:22:34 +08:00
dgflash
99c85e32e0 添加CCViewVM兼容老项目 2026-01-22 22:07:01 +08:00
dgflash
cddf9e142c 优化CCEntity语法 2026-01-10 13:04:00 +08:00
dgflash
f2fe9d47b6 1. 存储模块全面优化,修复跨平台兼容性问题,完美支持所有Unicode字符
2. 存储模块性能提升,添加LRU缓存、批量操作支持,优化内存使用
3. 多语言模块性能与内存管理优化,组件查询性能提升
4. 时间模块类型安全与性能优化,使用泛型替代any,对象池机制减少内存分配
5. 事件系统修复双重注册、重复注册等严重问题,实现EventData对象池减少GC压力
6. RandomManager修复4个逻辑BUG,包括边界问题和越界问题
7. 音频模块内存与性能优化,避免重复加载,优化数据结构,添加完整清理机制
8. CCView与CCViewVM合并,支持按需启用MVVM
9. Collection模块优化,AsyncQueue添加队列容量限制,Collection查询性能提升
10. ECS系统全面优化,对象池复用减少内存分配,循环性能提升
11. 优化MVVM组件性能
2026-01-09 21:54:05 +08:00
dgflash
e4241ad217 所有“修改为‘统一标准 2025-12-13 23:32:56 +08:00
dgflash
cd47510cb0 1. TimeUtili添加将秒数格式化为时间格式
2. CCEntity添加逻辑组件为空时验证
2025-10-26 21:34:45 +08:00
dgflash
c2685c58fa Revert "TimeUtil.format添加倒计时秒格式化为时间格式"
This reverts commit 60b62e86ef.
2025-10-26 21:34:45 +08:00
dgflash
2612affdf5 TimeUtil.format添加倒计时秒格式化为时间格式 2025-10-26 21:34:45 +08:00
dgflash
dfc0690dd2 优化 2025-10-26 21:34:40 +08:00
dgflash
1b2250920e CCEntity.addPrefab方法修改为返回节点 2025-10-26 21:34:40 +08:00
dgflash
500c1e3225 . 2025-10-26 21:34:24 +08:00
dgflash
7abad2a817 GameComponent添加loadAny方法 2025-10-26 21:34:24 +08:00
dgflash
9d24d03aa7 1. 废弃oops.res.loadAsync,功能与oops.res.load方法合并
2. 废弃oops.res.preloadAsync,功能与oops.res.preload方法合并
3. 废弃GameComponent.loadAsync,功能与GameComponent.load方法合并
4. 修复本地存储加密安卓平台报错问题
2025-10-26 21:34:23 +08:00
dgflash
d382562bb8 . 2025-10-26 21:34:04 +08:00
dgflash
f2dae55173 修复GameComponent.playEffect播放音效未自定义传参数时报错 2025-10-26 21:34:04 +08:00
dgflash
a8c3a1b7f4 1. CCEntity.addPrefab方法修改为返回节点
2. TimeUtili添加将秒数格式化为时间格式
3. 修复时间管理从后台恢复时计算错误问题
4. 修复DateExt时间格式化转化错误问题
5. 修复StorageSecuritySimple在真机上解码错误问题
6. 修复音效循环播放功能无效问题
7. 优化加载模块
8. 优化CCEntity.addUi错误提示信息
9. CommonPrompt对象修改为PromptBase,并优化代码,适合继承使用
2025-10-26 21:30:12 +08:00
dgflash
d120563ac4 CCView与CCViewVM支持泛型实体类型 2025-09-19 23:02:53 +08:00
dgflash
21472de6bc 修复CCEntity释放时报错问题 2025-09-19 17:49:52 +08:00
dgflash
dcd1ef8340 CCBusiness支持泛型实体类型 2025-09-19 17:28:23 +08:00
dgflash
f78f0a2744 . 2025-09-18 16:43:05 +08:00
dgflash
6e688dcdd1 . 2025-09-18 14:09:26 +08:00