之前已经把代码上传到 git
托管平台, 现在开始编码工作吧.
从入口开始
直接在 main
函数写东西, 写好再组织一下代码. 写代码之前, 先创建个分支, 尽量不要在主分支上改东西.
git checkout -b create-a-window
use self::time::Duration;
use sdl2::pixels::Color;
use std::{thread, time};
fn main() {
let sdl2_context = sdl2::init().unwrap();
let video = sdl2_context.video().unwrap();
let window = video
.window("Arcade Shooter", 800, 600)
.position_centered()
.opengl()
.build()
.unwrap();
let mut canvas = window.renderer().accelerated().build().unwrap();
canvas.set_draw_color(Color::RGB(0, 0, 0));
canvas.clear();
canvas.present();
thread::sleep(Duration::from_millis(10000));
}
复制代码
现在是创建了一个窗口, 还让窗口显示了 10 秒.
代码解读
因为现在用的 Rust
版本是 2018 edition, 如果是旧版本需要使用 extern crate sdl2
引入 sdl2 模块, 新版真是提高开发体验, 直接 use sdl2
就能使用 sdl2. 主函数进去之后, 通过 sdl2
的 init
函数得到初始化得到一个 Result<Sdl, String>
, 通常情况下, 直接 unwrap
拿到 Sdl
实例就可以了, 也可以使用 expect
传入一个错误情况的提示字符串切片, 这是我们后面要使用 sdl 的开端. 后面的都很好理解, 通过 Sdl
实例的 video
函数来初始化 video subsystem
, 再用这个实例来调用 window
函数创建窗口构建器, 配置窗口居中, 配置 OpenGL 支持, 最后构建出一个窗口. 其实这段代码就是一个 hello world
性质的东西.
这一节应该是很简单的, 就是翻文档性质的工作.