回顾
在之前的章节中,我们已经完成了如下的工作:
- 准备所需的音频文件
- 设置游戏所需的屏幕和键盘配置
- 创建了游戏主循环并在其中实现按键
Esc
或q
退出游戏的功能 - 游戏退出前还原配置
- 编写界面框架与终端渲染相关的模块和函数
- 游戏主循环和渲染线程的数据通信和协同
- 玩家模块中定义了玩家的属性和行为,并接入到了游戏主循环中
我们的项目本质上是一个射击类游戏,接下来我们就要开始编写射击相关的模块了。
添加子弹模块
在源文件目录下新建一个模块文件shot.rs
, 此时我们的项目目录结构看起来应该是这样:
invaders
├── Cargo.lock
├── Cargo.toml
├── explode.wav
├── lose.wav
├── move.wav
├── pew.wav
├── src
│ ├── frame.rs
│ ├── lib.rs
│ ├── main.rs
│ ├── player.rs
│ ├── render.rs
│ └── shot.rs
├── startup.wav
└── win.wav
注意不要忘记将新建的模块在根库文件lib.rs
中导入,以便在我们的项目中使用:
// lib.rs
pub mod