0x01. 使用 SDL2 建立一个窗口

以前已经把代码上传到 git 托管平台, 如今开始编码工做吧.git

从入口开始

直接在 main 函数写东西, 写好再组织一下代码. 写代码以前, 先建立个分支, 尽可能不要在主分支上改东西.canvas

git checkout -b create-a-windowide

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. 主函数进去以后, 经过 sdl2init 函数获得初始化获得一个 Result<Sdl, String>, 一般状况下, 直接 unwrap 拿到 Sdl 实例就能够了, 也能够使用 expect 传入一个错误状况的提示字符串切片, 这是咱们后面要使用 sdl 的开端. 后面的都很好理解, 经过 Sdl 实例的 video 函数来初始化 video subsystem, 再用这个实例来调用 window 函数建立窗口构建器, 配置窗口居中, 配置 OpenGL 支持, 最后构建出一个窗口. 其实这段代码就是一个 hello world 性质的东西.ui


这一节应该是很简单的, 就是翻文档性质的工做.编码

相关文章
相关标签/搜索