尹良灿得闲

巴甫洛夫很忙……巴甫洛夫正在死亡

【译】ArcadeRs 1.0: 介绍

| Comments

原文:ArcadeRS 1.0: The project

本系列文章的目是通过开发一个简单的老式射击游戏来一探 Rust 这门语言,这是其中的介绍部分。除去介绍,本系列共有 16 个部分组成:

  1. 一个简单的窗口,我们在此安装 SDL2
  2. 事件处理,我们在此讨论生存期限
  3. 处理更多的事件,我们在此讨论宏
  4. 视图,我们在此学习装箱,模式匹配,trait 对象,还有动态分发
  5. 视图的切换,我们在此使用装箱,模式匹配,trait 对象,还有动态分发
  6. 移动的矩形,我们在此绘制图像
  7. Main menu, where we play with textures and Rust’s vectors
  8. Sprites, where we create shareable images
  9. Backgrounds, where we handle resizing, scale and translate through time
  10. The player’s ship, where we control a multi-sprite object
  11. Shooting bullets, where we handle resource pooling
  12. Animated sprites, where we render animated asteroids
  13. Asteroid attack!, where we make multiple objects interact
  14. Explosions, where we see things do boom.
  15. Music, where we hear things go boom.
  16. High score & wrap-up, where we play with the filesystem

这是一篇写给那些哪怕仅仅是通过某个脚本语言,已经对软件开发这门技艺有所了解的人的教程,他们刚刚发现了这头名为 Rust 的怪兽。他们过了一遍官方教程,阅读了大量关于这门看起来熟悉,据说向原有的软件安全概念发起了挑战的语言的博文,然后 excited,想要发掘如何真正地在实践中运用 Rust

我对读者的要求是,他或她(或者它?)应该理解诸如接口,方法,条件结构,和(基础的)静态类型这些概念。多数情况下,这些术语的含义在其上下文中是不言自明的。然而,如果理解它们对你来说很成问题,提醒一下我不会对其作长篇大论的解释。

我还期望你阅读这篇教程前已经学习过一点 Rust,即使只是浅显的部分。比如你得明白 Rustuse 语句,哪怕仅限于在 main.rs 文件里,是用来干什么的。当然,你不需要成为一名专家才能探索其中的微妙。

在接下来的几周里,我们将会基于 Mike Geig 的棒棒哒 2D 游戏开发教程 来制作一个太空射击游戏。我们还会编写一个叫做 phi 的库,它会为我们提供诸如视图(在 LibGDX 中称为 screens),内置碰撞检测(虽然很基础)的矩形,和动态精灵等 2D 游戏所需的组件。

我们将要用到的库是 AngryLawyer 的 SDL2 的绑定,版本为 6.0,你可以在这里找到,以及相关的一些插件。

继续讲述前,我要强调的是你无需精通 Rust 再阅读这篇教程。相反,本教程的目的之一就是探索 Rust 的微妙之处,哪怕不是主要的,基于此,老实说,我不推荐在生产中使用 phi。可是,你至少得浏览过官方教程或者 Rust by Example

基本上,我会直接展示如何使用而不会解释语法。

所以,不多说,我们开始吧

Comments