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

之前已经把代码上传到 git 托管平台, 现在开始编码工作吧.

从入口开始

直接在 main 函数写东西, 写好再组织一下代码.

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 性质的东西.


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

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!