本系列文章的目是通过开发一个简单的老式射击游戏来一探 Rust
这门语言,这是其中的介绍部分。除去介绍,本系列共有 16 个部分组成:
- 一个简单的窗口,我们在此安装 SDL2
- 事件处理,我们在此讨论生存期限
- 处理更多的事件,我们在此讨论宏
- 视图,我们在此学习装箱,模式匹配,trait 对象,还有动态分发
- 视图的切换,我们在此使用装箱,模式匹配,trait 对象,还有动态分发
- 移动的矩形,我们在此绘制图像
- Main menu, where we play with textures and Rust’s vectors
- Sprites, where we create shareable images
- Backgrounds, where we handle resizing, scale and translate through time
- The player’s ship, where we control a multi-sprite object
- Shooting bullets, where we handle resource pooling
- Animated sprites, where we render animated asteroids
- Asteroid attack!, where we make multiple objects interact
- Explosions, where we see things do boom.
- Music, where we hear things go boom.
- High score & wrap-up, where we play with the filesystem
这是一篇写给那些哪怕仅仅是通过某个脚本语言,已经对软件开发这门技艺有所了解的人的教程,他们刚刚发现了这头名为 Rust
的怪兽。他们过了一遍官方教程,阅读了大量关于这门看起来熟悉,据说向原有的软件安全概念发起了挑战的语言的博文,然后 excited,想要发掘如何真正地在实践中运用 Rust
。
我对读者的要求是,他或她(或者它?)应该理解诸如接口,方法,条件结构,和(基础的)静态类型这些概念。多数情况下,这些术语的含义在其上下文中是不言自明的。然而,如果理解它们对你来说很成问题,提醒一下我不会对其作长篇大论的解释。
我还期望你阅读这篇教程前已经学习过一点 Rust
,即使只是浅显的部分。比如你得明白 Rust
的 use
语句,哪怕仅限于在 main.rs
文件里,是用来干什么的。当然,你不需要成为一名专家才能探索其中的微妙。
在接下来的几周里,我们将会基于 Mike Geig 的棒棒哒 2D 游戏开发教程 来制作一个太空射击游戏。我们还会编写一个叫做 phi
的库,它会为我们提供诸如视图(在 LibGDX 中称为 screens),内置碰撞检测(虽然很基础)的矩形,和动态精灵等 2D 游戏所需的组件。
我们将要用到的库是 AngryLawyer 的 SDL2 的绑定,版本为 6.0,你可以在这里找到,以及相关的一些插件。
继续讲述前,我要强调的是你无需精通 Rust
再阅读这篇教程。相反,本教程的目的之一就是探索 Rust
的微妙之处,哪怕不是主要的,基于此,老实说,我不推荐在生产中使用 phi
。可是,你至少得浏览过官方教程或者 Rust by Example。
基本上,我会直接展示如何使用而不会解释语法。
所以,不多说,我们开始吧。