我最开始学 Rust 的时候, 看完 Rust Book 这类官方推荐教程之后, 就不晓得接下来该怎么继续了, 我觉得很多人跟我应该是同样的感觉. 后来我找到了个用 Rust 开发完整应用的教程. 但是很遗憾, 我现在在作者的博客上已经找不到那一系列教程了, 但是我当初一知半解时期写下的代码还在, 我现在想重新还原那份教程.
首先介绍一下这个项目, 这是一个用 rust-sdl2
同时运用上 Rust 大部分语法特性开发一个桌面应用.
目录
0x00. 使用 Rust 开发个完整的应用
0x01. 使用 SDL2 创建一个窗口
0x02. 处理窗口关闭
0x03. 使用宏定义事件
0x04. 视图渲染
0x05. 视图操作
0x06. 窗口上的矩形
开始前的准备
在开始编码之前, 先把一些东西都配好, 所以先把 SDL2 装上, 在 macOS 上直接在终端执行命令来安装 brew install sdl2
, 安装高版本的 Rust
, 最好是 nightly
. 因为会用到 2018 edition 的东西, 还有一些 unstable
特性.
我本机的 Rust 版本
rust 1.33.0-nightly (a8a2a887d 2018-12-16)
然后选择一个目录创建项目
cargo new rs-arcade
复制代码
修改一下 Cargo.toml
文件, 添加一下 rust-sdl2
的依赖, 这里使用 0.29
版本吧, 原因是 0.30
以后的版本我还没去学, 后面整个项目完成了, 再迁移到新版本也可以作为一个学习目标.
[package]
name = "rs-arcade"
version = "0.1.0"
authors = ["LimitLiu <xxx@example.com>"]
edition = "2018"
[dependencies]
sdl2 = "0.29"
复制代码
接下来, 直接在项目根目录执行 cargo run
启动同时安装好依赖. 考虑到国内的网络非常优秀, 所以建议配置一个国内的源. 官方的管理仓库在 https://crates.io
, 我们在 $HOME/.cargo
目录下创建一个 config
文件, 加上这些内容
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
复制代码
保存好之后, 再执行 cargo run
.
等到执行成功, 我们把代码上传到 git 托管平台. 我使用国内的 Coding 平台来托管, 理由还是国内的优秀网络. // 虽然现在变成疼训的啦https://git.dev.tencent.com/limitLiu/rs-arcade.git
现在已经完成了项目初始的工作, 之后先把窗口显示出来.