核心概念
Cider 不是把一切都塞进一个黑箱里,而是拆成几个相对清晰的模块。先理解这些模块,后面读源码会快很多。
入口层
Game 是整个运行时的入口。它负责:
- 保存当前
ProjectSettings - 创建主窗口和同步上下文
- 驱动更新、物理步进和渲染
- 处理浏览器与本机平台之间的运行差异
窗口层
Window 负责真正和 SDL 打交道。它不仅是一个窗口对象,也是场景的宿主:
Scene会挂到窗口上Renderer由窗口创建并持有- 大部分窗口操作都要求在主线程上执行
场景与组件树
Scene 继承自 Component,所以它本身也是组件树的一部分。Component 提供了这些生命周期钩子:
OnAttachToSceneOnLoadedOnUpdateOnFixedUpdateOnRenderOnDetachFromScene
这意味着你可以把逻辑拆成很多小组件,再由场景统一组织。
项目配置
ProjectSettings 目前定义了最核心的启动参数:
MainSceneMainWindowTitleMainWindowFlagsMainWindowSizeBackgroundColorClearColorLogicalSizeLogicalPresentationMode
当前仓库里的模块
从 cider 文件夹看,文档后续最值得继续展开的部分是:
Cider/Render:渲染器、纹理、文本和相机Cider/Input:键鼠与输入上下文Cider/Audio:音频播放与混音器Cider/Physics:2D 物理形状与世界Cider/Assets:纹理、字体、音频和文本资源Cider/Platform:浏览器、Android 等平台适配
下一步
如果你要把这份文档继续补全,最自然的顺序是先写 Render 和 Assets,因为它们最容易形成可运行示例。