Commit Graph

67 Commits

Author SHA1 Message Date
db0fd3a17e feat(渲染): 实现NPC和地图层的渲染优化
重构NPC渲染逻辑,将交互高亮同步移至Render方法
为NpcAnimation添加帧激活检查以避免无效纹理刷新
为GameMapLayer添加调试覆盖层画布,优化可行区域和移动区域渲染
更新测试场景地图路径和相机控制器设置
2026-04-08 00:17:03 +08:00
5af657c5c9 feat(npc): 添加NPC交互高亮效果及复合纹理支持
实现NPC交互时的绿色高亮效果,通过InteractionHighlightSprite类实现
重构NpcAnimation支持复合纹理渲染,优化高亮效果的性能
添加ShaderManager获取所有加载Shader的方法,优化渲染器uniform更新逻辑
2026-04-07 23:17:34 +08:00
caad22cca7 feat(npc): 添加NPC数据加载、动画和对象功能
实现NPC系统的核心功能,包括:
1. 新增NpcDataLoader用于加载NPC索引和配置数据
2. 添加NpcAnimation处理NPC动画显示
3. 创建NpcObject实现NPC交互和显示逻辑
4. 在GameMapTestScene中集成测试NPC功能
2026-04-07 23:02:03 +08:00
6855860d64 feat: 添加.editorconfig文件并调整调试模式设置
添加.editorconfig文件以统一代码风格配置
将GameMap.h中的debugMode_设为true并禁用movableAreaCheckEnabled_以方便调试
更新AGENTS.md文档,添加代理偏好设置说明
2026-04-07 21:45:56 +08:00
e570fec599 feat(角色): 添加角色阴影渲染功能
新增 CharacterShadowActor 类用于处理角色阴影的渲染
在 CharacterObject 中实现阴影的同步和渲染逻辑
移除 GameDebugActor 中不再使用的合成纹理预览代码
添加 EnsureCompositeTextureReady 方法确保纹理准备就绪
2026-04-07 07:08:53 +08:00
808431f92c feat(动画): 添加角色动作合成纹理功能
实现角色动作的离屏渲染合成功能,支持获取合成纹理及其相关信息:
1. 新增CanvasActor用于离屏渲染
2. 新增RenderTexture封装FBO和纹理
3. 扩展Renderer支持离屏渲染到纹理
4. 为CharacterAnimation添加合成纹理生成逻辑
5. 在调试界面添加合成纹理预览功能
2026-04-07 06:17:49 +08:00
6684abd131 docs(graphics): 添加渲染分辨率缩放模式的注释说明
为 ResolutionScaleMode 枚举添加详细的中文注释,说明每种缩放模式的具体行为
2026-04-07 00:16:02 +08:00
875af43f88 feat(渲染): 实现2D渲染风格系统
添加渲染风格预设配置,支持像素风、平滑2D和混合模式
新增纹理采样控制、顶点像素对齐和UV收缩优化
为相机和场景添加渲染风格覆盖功能
2026-04-07 00:15:48 +08:00
62b0f6dafd feat(渲染): 添加虚拟分辨率支持并重构相机系统
实现虚拟分辨率渲染系统,支持不同缩放模式
重构相机控制器以使用虚拟分辨率计算可见区域
移除硬编码的屏幕尺寸,改为动态获取
添加分辨率状态管理及相关工具函数
更新窗口和渲染器以处理分辨率变化
2026-04-06 23:17:26 +08:00
35c80247b3 feat: 添加游戏数学工具类并重构相关代码
refactor: 将数学工具函数移至GameMath类
feat(音频): 实现地图音频控制器
feat(调试): 添加游戏调试UI组件
feat(地图): 增加移动区域边界获取方法
fix(角色): 修复角色移动区域抑制逻辑
refactor(世界): 重构游戏世界场景初始化
docs(音频): 完善音频数据库注释
2026-04-06 22:22:40 +08:00
f86ce35b68 feat(地图系统): 增强移动区域调试功能
- 添加移动区域边界结构体MoveAreaBounds并集成到地图配置中
- 实现移动区域索引查找和高亮显示功能
- 增加可移动区域检查开关movableAreaCheckEnabled
- 优化调试信息显示,包括坐标和当前所在移动区域
- 重构移动区域相关代码,提高可维护性
2026-04-06 14:36:51 +08:00
bcc285eed6 feat(场景管理): 添加UIScene支持并重构场景管理器
refactor(渲染器): 优化相机切换时的渲染批处理

feat(调试工具): 新增游戏调试UI场景和九宫格面板组件

fix(动画系统): 跳过缺失的动画资源加载并记录日志

perf(资源加载): 使用BinaryFileStreamReader优化NPK文件解析

feat(地图系统): 支持多边形可行走区域调试显示

style(代码格式): 清理多余空格和统一文件编码

docs(注释): 补充关键类和方法的文档说明

test(启动跟踪): 添加启动过程性能跟踪工具

chore(依赖): 添加SDL2_ttf库支持
2026-04-06 01:18:21 +08:00
6cd1b42fef feat(地图系统): 实现角色移动约束和地图切换功能
添加地图移动区域检测和角色移动约束逻辑
引入地图切换请求队列机制,支持延迟处理角色传送
在CharacterObject中实现地图边界检测和位置约束应用
2026-04-05 12:04:07 +08:00
2b0cfc6ce5 refactor(character): 使用整数坐标优化角色位置同步
- 将CharacterWorldPosition改为使用整数坐标,避免浮点精度问题
- 添加位置余数处理,确保移动平滑性
- 统一角色位置同步逻辑到SyncActorPositionFromWorld方法
- 修改地图移动检测使用整数坐标判断
2026-04-05 11:42:39 +08:00
c4eefab70c refactor(camera): 移除相机跟随的线性插值逻辑
直接使用目标位置作为焦点,简化相机跟随实现
2026-04-05 11:23:50 +08:00
dd67577c80 refactor(游戏逻辑): 调整剑士基础攻击滑动参数并移除测试场景的默认缩放
修改剑士基础攻击的滑动配置参数使其更平衡
移除GameMapTestScene中的默认缩放设置
2026-04-05 00:58:12 +08:00
5e80df040b feat(animation): 添加动画状态回调支持
refactor(character): 重构角色动作处理逻辑

feat(swordman): 实现剑士基础攻击和技能1处理

refactor(state): 优化状态机与动作上下文管理

feat(input): 改进输入系统支持动作请求队列

refactor(movement): 重构移动系统支持行走/奔跑模式
2026-04-04 14:45:41 +08:00
1200cf0181 refactor(character): 重构角色动作与动画系统
- 移除自动回退动作生成逻辑,改为严格检查动作定义
- 增加动作资源缺失时的详细错误报告机制
- 统一输入事件处理接口,优化角色对象生命周期管理
- 改进动画标签管理,移除隐式回退逻辑
- 增强状态机对无效动作的处理能力
2026-04-04 05:53:07 +08:00
f64180ebed feat(角色状态机): 重构角色状态系统为基于类的设计
新增通用状态类和职业专属状态类,将状态逻辑从状态机中解耦
添加状态注册机制,支持按职业配置状态
实现基础状态如待机、移动、跳跃、受击等
为剑士职业实现专属攻击状态
补充状态机开发说明文档
2026-04-03 17:11:22 +08:00
de522a1e64 refactor(animation): 重构动画方向处理逻辑
- 将翻转逻辑集中到Animation类中处理
- 添加spriteFrameOffsets_存储帧偏移量
- 改进角色动画方向切换时的表现
- 移除CharacterAnimation中的ApplyFlipRecursive方法
- 优化动画帧位置和旋转的计算方式
2026-04-03 09:13:50 +08:00
bb75a57afb feat(character): 实现角色状态机与输入路由系统
新增角色状态机框架,包含空闲、移动、跳跃、攻击等状态
添加输入路由组件,统一处理键盘和手柄输入
引入动作库管理角色动作定义,支持PVF脚本配置
重构角色对象,整合运动器、状态机和输入处理
修复Actor子节点排序时的迭代安全问题
2026-04-03 08:08:23 +08:00
b5c432e77a feat: 添加游戏核心模块,包括地图、角色、场景和世界管理
实现游戏基础架构,包含以下主要功能:
- 地图系统:支持地图加载、图层管理和相机控制
- 角色系统:实现角色装备、动画和行为管理
- 场景系统:提供测试场景和世界场景切换
- 世界管理:处理城镇和区域切换逻辑
- 数据加载:添加角色和装备配置加载器

这些改动为游戏开发奠定了基础框架,支持后续功能扩展
2026-04-02 23:32:44 +08:00
ec16aeffa6 feat: 实现游戏摄像机控制器并优化地图系统
重构地图系统,增加摄像机控制器管理相机行为。主要变更包括:
- 新增 GameCameraController 类,支持跟随目标和调试模式
- 重构 GameMap 类,分离相机逻辑到控制器
- 优化地图资源加载和同步逻辑
- 改进动画系统的事件处理
- 添加地图测试场景用于快速验证
2026-04-02 20:07:42 +08:00
d55808d80f feat: 实现游戏地图和城镇系统基础架构
新增GameMap和GameTown类实现游戏地图和城镇的核心功能
添加GameWorld作为游戏世界管理器处理场景切换
完善音频系统支持从路径加载音乐和音效
重构PVF资源系统增加路径规范化功能
添加.gitignore排除游戏资源目录
2026-04-01 09:53:06 +08:00
42e5579cc3 feat: 添加任务系统并实现异步资源加载功能
添加任务系统(TaskSystem)支持多线程任务处理和主线程回调
扩展Actor类添加更新监听器功能
新增GameWorld和GameTown场景类
添加多种混合模式(BlendMode)支持
实现异步资源加载界面和流程
2026-04-01 09:02:13 +08:00
31e2c249bb refactor(main): 重构主循环初始化逻辑,将资源初始化移到运行循环中
将PVF、NPK、SNPK、字体和音频系统的初始化从主函数移到应用运行循环中
统一资源初始化顺序,提高代码可读性和维护性
2026-04-01 05:38:37 +08:00
648b94e741 refactor(application): 将SquirrelVM执行逻辑改为启动回调
修改Application::run方法,接收一个启动回调函数参数,将原本直接执行的SquirrelVM::run逻辑改为由调用方通过回调控制。同时更新相关文档说明这一变更。
2026-04-01 05:27:55 +08:00
8cb688cf27 docs: 添加Frostbite2D开发文档
添加详细的Frostbite2D引擎开发文档,包含仓库结构、构建运行说明、核心架构、资源系统、事件系统等内容,为维护者和协作开发者提供快速入门指南
2026-04-01 05:12:03 +08:00
ac4d2ffc9a feat(脚本引擎): 添加SquirrelVM运行功能并重构主脚本
为SquirrelVM添加run()方法用于执行脚本中的main函数
重构main.nut脚本结构,将打印和错误调用封装到main函数中
在Application启动时自动执行脚本的main函数
2026-03-31 04:16:26 +08:00
d25ff7655b feat: 添加Squirrel脚本支持并完善平台相关功能
- 新增SquirrelVM类实现脚本引擎功能
- 添加Windows平台初始化代码以支持UTF-8控制台输出
- 在各平台构建配置中添加squirrel依赖
- 创建测试脚本main.nut验证中文支持
- 更新.gitignore排除nul文件
2026-03-30 22:09:59 +08:00
d97b4e69b9 feat(窗口): 实现窗口大小和位置调整功能
添加窗口大小和位置调整的回调处理,支持通过按键触发窗口尺寸和位置变化
完善Window类的setSize、setPos和pos方法实现,添加SDL窗口操作
2026-03-29 12:33:10 +08:00
dc41475b87 feat(字体渲染): 添加字体管理和文本渲染功能
- 新增FontManager类用于管理字体资源
- 添加TextSprite类实现文本渲染功能
- 更新构建配置添加SDL2_ttf依赖
- 添加多种字体资源文件
- 修改窗口和相机初始化逻辑
- 更新Switch平台构建配置
2026-03-29 11:46:25 +08:00
890211431e feat(actor): 为Actor添加UUID支持和对象注册功能
添加UUID类用于生成唯一标识符
实现ObjectRegistry用于管理Actor对象
在Actor构造和析构时自动注册/注销对象
修改窗口默认分辨率为1280x720
2026-03-29 10:27:30 +08:00
51be8a6128 docs: 更新 README 文档内容
- 完善特性描述,添加音频系统、输入系统等新功能说明
- 更新依赖列表,添加 SDL2_mixer 和 zlib
- 优化示例代码,展示资源管理和 Actor 系统
- 添加模块概览表格和技术亮点章节
- 重构项目结构说明,反映最新代码组织
2026-03-28 04:42:54 +08:00
913cd966b3 feat(sprite): 添加偏移量支持并优化NPK精灵创建
添加Sprite类的偏移量属性,支持设置和获取偏移量
修改NPK精灵创建逻辑,自动设置帧偏移量
注释掉main.cpp中不必要的锚点设置
2026-03-28 04:36:02 +08:00
b5e5fe5e63 feat(动画系统): 实现动画系统基础功能
添加动画组件及相关数据结构,支持从PVF加载动画资源
实现动画播放、帧控制、插值逻辑等功能
更新主程序以测试动画系统
2026-03-28 04:29:11 +08:00
08570f3aab feat(事件系统): 实现完整的事件处理框架
添加事件系统核心组件,包括事件基类、各种输入事件类型和事件分发机制。主要功能:
- 新增基础事件类及键盘、鼠标、触摸、手柄等输入事件
- 在Actor类中实现事件监听和分发功能
- 在Scene类中添加事件处理逻辑
- 在Application类中集成SDL事件转换和分发
- 添加测试用例验证手柄事件处理

事件系统支持冒泡和优先级排序,为游戏交互提供基础支持
2026-03-28 03:57:52 +08:00
0171c9d22a refactor(core): 重构资源销毁流程,改为集中式管理
将各模块的析构函数中自动调用shutdown()的逻辑移除,改为在Application::shutdown()中统一手动调用
调整SDL初始化和退出流程,避免重复调用
添加测试用的1秒定时退出逻辑
清理主程序中的示例代码
2026-03-25 20:00:13 +08:00
9a5b36392c refactor(actor): 重构Actor类以支持完整变换体系
重构Actor类,添加变换矩阵计算和父子关系处理
- 添加本地和世界变换矩阵计算
- 实现锚点、旋转、缩放等变换属性
- 添加父子关系变换继承
- 优化子节点管理,支持按ZOrder排序
- 添加透明度继承功能
2026-03-21 03:34:56 +08:00
4870627b4d feat(audio): 添加音频数据库支持及XML解析功能
实现音频数据库系统,支持从XML文件加载音频配置
添加RapidXML库用于XML解析
提供统一的音频查询接口,支持音效、音乐和随机音效组
2026-03-21 02:44:29 +08:00
46ca534a19 feat(音频): 添加从NPK加载音频文件的功能
实现SoundPackArchive系统用于管理NPK格式的音频资源包
为Music和Sound类添加loadFromNpk方法支持从NPK加载音频
新增音频播放控制功能如暂停、恢复、停止等
2026-03-21 00:37:32 +08:00
18111dae6b feat(资源管理): 添加NPK文件格式支持及精灵创建功能
实现NPK文件格式的解析和缓存管理,支持从NPK文件中加载精灵图像
添加Sprite::createFromNpk方法用于从NPK创建精灵
修改Texture和Sprite相关方法以支持const数据
添加zlib依赖用于NPK文件解压
优化Asset::listFilesWithExtension的扩展名匹配逻辑
2026-03-20 04:21:42 +08:00
29dec1f64b refactor(resource): 重构资源管理模块,将utils目录下的资源相关文件迁移到resource目录
重构资源管理模块,将原utils目录下的asset、binary_reader、pvf_archive和script_parser等资源相关文件迁移到新创建的resource目录中,并优化相关代码结构。同时更新所有引用这些文件的代码路径,保持项目一致性。

新增完整的资源管理功能:
- BinaryReader: 提供二进制文件读取功能
- PvfArchive: 实现PVF资源包解析
- ScriptParser: 支持脚本二进制数据解析
- Asset: 提供文件系统操作接口

优化内容包括:
1. 统一资源管理相关代码位置
2. 完善各模块的文档注释
3. 增加错误处理和日志记录
4. 实现更安全的资源访问方式
2026-03-20 02:46:47 +08:00
6c11e4d8be fix(audio): 修复音频系统初始化及资源加载问题
- 修改音频系统初始化逻辑,增加备用初始化参数
- 优化音乐和音效加载方式,直接加载文件而非内存
- 增加错误日志输出,便于排查问题
- 更新MingW平台构建脚本,完善依赖DLL复制
2026-03-20 02:36:11 +08:00
9ce47cc501 feat(audio): 添加音频系统支持背景音乐和音效播放
实现完整的音频系统,包括:
1. 添加 SDL2_mixer 依赖
2. 创建音频系统核心类 AudioSystem
3. 实现音乐(Music)和音效(Sound)类
4. 在游戏主循环中初始化音频并播放背景音乐
5. 更新构建脚本以支持音频库
2026-03-19 03:13:18 +08:00
fc81c2634c feat(switch): 添加运行目标时自动执行nxlink的功能
添加on_run回调函数,在目标运行时会自动通过nxlink.exe启动生成的NRO文件
2026-03-18 12:51:08 +08:00
7fc056496b docs: 添加项目README文件
添加项目README文件,包含项目介绍、特性、构建说明、快速开始示例和项目结构等信息
2026-03-18 04:23:15 +08:00
cb9f497fbb feat(资源加载): 替换stb_image为SDL_image并添加脚本解析功能
- 将stb_image替换为SDL_image以解决Switch平台兼容性问题
- 添加PVF资源包解析器和脚本解析器功能
- 修改各平台配置文件添加SDL_image依赖
- 更新纹理加载逻辑使用SDL_image API
- 新增脚本解析相关类用于处理游戏脚本数据
2026-03-18 04:18:57 +08:00
a4883b433e feat(utils): 添加二进制文件读取器 BinaryReader
refactor(assets): 将着色器路径从 "shaders" 改为 "assets/shaders"
refactor(build): 统一各平台资源目录复制逻辑为 assets 目录

style: 更新 .gitignore 忽略参考代码目录和 .pvf 文件
2026-03-18 03:12:39 +08:00
57a96a0cc5 feat(渲染): 重构渲染系统并添加相机支持
- 在Batch中添加纹理采样器uniform设置
- 重构Sprite渲染逻辑,使用Renderer的drawSprite方法
- 添加Camera类并集成到Application和Renderer中
- 支持Y轴翻转的投影矩阵以适应2D游戏坐标系
- 改进颜色处理,移除不必要的归一化计算
- 添加渲染错误处理和日志输出
2026-03-17 18:40:19 +08:00