回顾
在之前的章节中,我们已经完成了如下的工作:
- 准备所需的音频文件
- 设置游戏所需的屏幕和键盘配置
- 创建了游戏主循环并在其中实现按键
Esc
或q
退出游戏的功能 - 游戏退出前还原配置
- 编写界面框架与终端渲染相关的模块和函数
接下来需要做的是在主函数中,将他们整合起来,我们将要做的是:
- 创建一个子线程,接收当前界面布局的信息(Frame),并渲染到终端界面中;
- 在游戏主循环中,发送当前界面布局的信息(Frame)给渲染专用的子线程。
创建渲染专用的子线程
游戏主循环中的操作, 例如上下左右移动, 消灭敌人,发射子弹等,都会导致界面布局的变化,这意味着Frame的数据发生变化。 如果在每次Frame发生变化时,我们都去渲染界面,然后再继续进行游戏,不仅使得代码非常难以编写,而且游戏运行的效率也非常低下, 因此,我们专门用一个线程,来周期性的监听Frame的数据变化,然后在这个线程中根据接收到的Frame数据对界面进行渲染。