配置
了解窗口、时间、音频和光标的配置项,以及当前 JSON 配置的限制。
本页内容
配置文件
引擎在构造全局对象 gConfig 时读取 Content/Config.json。参考修订中的内容如下:
{
"windowTitle": "Awesome Engine",
"windowSize": [800, 800],
"frameRateLimit": 120,
"disableSfmlLogs": true,
"maximumDeltaTime": 0.03,
"globalVolume": 100,
"backgroundColor": [100, 100, 100],
"cursorRadius": 5,
"cursorSpeed": 800,
"cursorColor": [255, 100, 0],
"joystickDeadzone": 0.1
}
每个配置值控制什么
| 键 | 作用 |
|---|---|
windowTitle |
SFML 窗口标题。 |
windowSize |
初始窗口尺寸,也是渲染目标和多种游戏计算的参考尺寸。 |
frameRateLimit |
向窗口请求的帧率上限;缺少该键时默认为 120。 |
disableSfmlLogs |
为 true 时屏蔽 SFML 的错误输出流。 |
maximumDeltaTime |
TimeManager 每帧提供的最大模拟时间增量,单位为秒。 |
globalVolume |
应用于 SFML 监听器的全局音量。 |
backgroundColor |
RenderManager 使用的背景 RGB 颜色。 |
cursorRadius |
自定义圆形光标的半径。 |
cursorSpeed |
通过手柄移动光标时的速度。 |
cursorColor |
光标的 RGB 颜色。 |
joystickDeadzone |
移动光标时,用于忽略摇杆微小偏移的阈值。 |
120 帧的上限是配置值,不是性能测量结果。它也不表示模拟使用固定时间步长:每帧的时间会变化,并由 maximumDeltaTime 限制。
修改配置
关闭应用后编辑 JSON,然后从仓库根目录重新启动。配置只在启动时读取,没有自动重新加载文件的功能,也没有写入这些值的设置面板。
请保留示例中的键名和数据类型。解析器没有实现验证模式,也没有为所有字段提供备用值。文件缺失、JSON 无效或必填键错误都可能导致启动失败。
修改 windowSize 还会影响使用 gConfig.windowSize 的游戏代码。这并不等同于拥有完整的动态分辨率系统。窗口调整大小事件不会自动重建后处理纹理。
各个游戏的配置
游戏专用参数位于 Games/Include/Config:BounceConfig.h、ClickerConfig.h、MemoryCardConfig.h、TicTacToeConfig.h、MineSweeperConfig.h、RunnerConfig.h 和 TetrisConfig.h。
它们是 C++ 常量,修改后需要重新编译。启动场景也不是从 Config.json 中选择,而是在 Engine 构造函数中通过 ChangeScene("Tetris") 固定指定。
网站与引擎的偏好设置
本站的浅色、深色或跟随系统选项只影响网页界面。引擎通过 Content/Themes/Dark.txt 配置 TGUI。本文档不假定网页上的主题选择器也存在于可执行程序中。
源码参考
基于已验证的源码。发现问题了吗? →