< 返回版块

Cupnfish 发表于 2021-01-28 21:16

如何阅读Rust函数,第1部分

Rust的函数部分要学习的东西对于新手来说出奇的多,该文介绍了如何理解阅读rust的函数,同时分析了rust函数的每种功能以及对应的函数签名。这是该系列的第一部分。

Read More:https://www.possiblerust.com/guide/how-to-read-rust-functions-part-1

datanymizer - 具有灵活规则的强大数据库匿名器。

datanymizer是由rust所写的数据库匿名器。

Read More:https://evrone.com/datanymizer

paranoia - 查看你的代码是否被优化掉

就像名字的意思那样,偏执狂(paranoia)是一个可以查看你的代码是否被优化掉的库。

通常使用的时候需要导入两个库:

[dependencies]
paranoia-caller = "*"
paranoia = "*"

用例:

// 验证以下代码已经被优化掉
if false {
    paranoia_caller::mark();
}
assert!(!paranoia::marker_exists());
// 验证以下代码没有被优化掉
if true {
    paranoia_caller::mark();
}
assert!(paranoia::marker_exists());

Doc: https://docs.rs/paranoia/0.1.3/paranoia/

rfid-audio - 一个用 Rust 写的 stm32l431 的 mp3播放器。

该播放器通过将RFID卡显示给Mfrc522读卡器来选择mp3播放列表。 带有用于暂停,前进,后退和上一步的按钮,以及与PWM引脚相连的用于状态编码的LED。

Github: https://github.com/ceigel/rfid-audio

Teki - 使用SDL2和OpenGL由Rust编写的游戏

该游戏是Teki是Tōhō系列的开源同人游戏,目前还是开发的早期阶段。

在线玩: https://o2sh.github.io/teki/

Github: https://github.com/o2sh/teki

This Week in Rust 375

375。

Read More:https://this-week-in-rust.org/blog/2021/01/27/this-week-in-rust-375/

rusty-bomber - 小编私货

该项目是Bomberman的Bevy复刻。由我和 reddit 上认识的网友@rgripper共同开发。虽然是复刻但是因为没找到原版游戏的相关美术资源,所以美术资源是另找的。游戏目前有不少已知的小bug(比如胜利状态下按ecs键会卡死,也是刚刚一不小心试出来的。),其实游戏主体在一周之前基本写好了,但是因为对游戏在wasm版本下的性能不满意,所以重构了一下,整个开发过程对我来说,重构是最难受的部分吧,对rapier的不熟悉是难受的主要原因。

重构的时候对我来说有三个选择,第一个选择是使用rapier来重构,由物理引擎来处理碰撞这些,游戏的成品也确实是用的这种方法,但当时选择这个的原因是脑袋一热就选的,仅仅是为了自己熟悉rapier的api,最好的选择肯定不是这个,但考虑到后几个游戏一定会有用到rapier的情况,所以也还可以接收。第二个选择就是将地图作为bevy的资源进行管理,每次更新一些游戏内部的状态时,同时更新地图,这种方法我一点都不喜欢,在受性能问题困扰之前我的做法是查表,然后对查出来的结果进行处理,开发过程十分有趣,native版本的性能也十分强悍,可惜wasm卡顿实在无法接收,就选择了重构。这当中有些有趣的事以及某些做法的具体原因会在现在被鸽了之后才会补上的项目总结里详细说明。还有第三个选择是用bevy_tilemap来重构,有这个意愿是因为之前在bevy的discord群里看到该库的作者做的demo,很符合bomberman这种游戏。

在线玩的版本在国内很有可能打不开,所以建议是clone该项目之后自己编译试玩,当然也还有一个原因是新修复的版本很有可能来不及编译部署到github上。

关于现在被鸽了之后才会补上的项目总结,很希望得到各位对bevy感兴趣的同谋提出感兴趣的问题,我有能力解答的问题,会在之后的项目总结里回复大家。

以及,最后,这个游戏只是我和@rgripper的起点,但也不仅仅是我们的起点,如果你也有兴趣一起用bevy写一个游戏项目,你也可以加入我们,这也将成为你的起点!在写了近6000行的bevy之后,我明显感受到基本没有用到生命期相关的rust新手很害怕的东西,甚至通过bevy的一些概念,让我加深了对并行等相关知识的认识和理解,也希望即使你只是rust新手,但不要害怕上手去写一些rust代码。我们决定的下一款游戏是西米岛的复刻,虽然肯定做不到像素级的复刻,但是会尽可能的去实现大部分功能,欢迎大家一起。

Github: https://github.com/rgripper/rusty-bomber

在线玩: https://rgripper.github.io/rusty-bomber/

From 日报小组 Cupnfish Jancd

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页