Skip to content

核心概念

Cider 不是把一切都塞进一个黑箱里,而是拆成几个相对清晰的模块。先理解这些模块,后面读源码会快很多。

入口层

Game 是整个运行时的入口。它负责:

  • 保存当前 ProjectSettings
  • 创建主窗口和同步上下文
  • 驱动更新、物理步进和渲染
  • 处理浏览器与本机平台之间的运行差异

窗口层

Window 负责真正和 SDL 打交道。它不仅是一个窗口对象,也是场景的宿主:

  • Scene 会挂到窗口上
  • Renderer 由窗口创建并持有
  • 大部分窗口操作都要求在主线程上执行

场景与组件树

Scene 继承自 Component,所以它本身也是组件树的一部分。Component 提供了这些生命周期钩子:

  • OnAttachToScene
  • OnLoaded
  • OnUpdate
  • OnFixedUpdate
  • OnRender
  • OnDetachFromScene

这意味着你可以把逻辑拆成很多小组件,再由场景统一组织。

项目配置

ProjectSettings 目前定义了最核心的启动参数:

  • MainScene
  • MainWindowTitle
  • MainWindowFlags
  • MainWindowSize
  • BackgroundColor
  • ClearColor
  • LogicalSize
  • LogicalPresentationMode

当前仓库里的模块

cider 文件夹看,文档后续最值得继续展开的部分是:

  • Cider/Render:渲染器、纹理、文本和相机
  • Cider/Input:键鼠与输入上下文
  • Cider/Audio:音频播放与混音器
  • Cider/Physics:2D 物理形状与世界
  • Cider/Assets:纹理、字体、音频和文本资源
  • Cider/Platform:浏览器、Android 等平台适配

下一步

如果你要把这份文档继续补全,最自然的顺序是先写 RenderAssets,因为它们最容易形成可运行示例。