之前已經把程式碼上傳到 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.
主函式進去之後, 通過 sdl2
的 init
函式得到初始化得到一個 Result<Sdl, String>
, 通常情況下, 直接 unwrap
拿到 Sdl
例項就可以了, 也可以使用 expect
傳入一個錯誤情況的提示字串切片, 這是我們後面要使用 sdl 的開端. 後面的都很好理解, 通過 Sdl
例項的 video
函式來初始化 video subsystem
, 再用這個例項來呼叫 window
函式建立視窗構建器, 配置視窗居中, 配置 OpenGL 支援, 最後構建出一個視窗. 其實這段程式碼就是一個 hello world
性質的東西.
這一節應該是很簡單的, 就是翻文件性質的工作.