8个版本 (4个破坏性更新)
0.7.1 | 2024年7月5日 |
---|---|
0.7.0 | 2024年7月4日 |
0.6.0 | 2024年4月24日 |
0.5.2 | 2024年2月21日 |
0.1.0 | 2023年8月29日 |
#1276 in 游戏开发
每月下载量709
在2个crate中使用(通过bevy_rand)
15KB
284 行
Bevy PRNG
什么是Bevy PRNG?
bevy_prng
是一个crate,它提供了各种rand_*
PRNG算法crate的新类型版本,以便在bevy
中进行反射。它使这些类型具有稳定的TypePath
,并实现各种所需的特质。此crate可以作为独立单元使用,以访问各种选择的PRNG算法,然后用于在bevy
中编写组件/资源,但它的主要目的是支持和与bevy_rand
(提供通用包装组件/资源,bevy_prng
类型可以插入)相对应。
使用Bevy PRNG
默认情况下,bevy_prng
不会导出任何内容,除非显式定义了所需的特性/算法。为了访问新类型的RNG结构,您需要激活以下特性之一
rand_chacha
- 此特性启用了导出新类型的ChaCha*Rng
结构体,供需要使用CSPRNG级别的源的人使用。rand_pcg
- 此特性启用了从rand_pcg
导出新类型的Pcg*
结构体。rand_xoshiro
- 此特性启用了从rand_xoshiro
导出新类型的Xoshiro*
结构体。它还重新导出Seed512
,以便无需显式引入rand_xoshiro
即可设置Xoshiro512StarStar
等。wyrand
- 此特性启用了从wyrand
导出新类型的WyRand
,与在fastrand/
turborand
中使用的相同算法。
除了这些用于启用各种支持算法的功能标志之外,还有一个 serialize
标志,用于提供 serde
对 Serialize
/Deserialize
的支持,默认情况下是启用的。
所有类型都在模块的最顶层提供
use bevy_prng::*;
支持的PRNG算法/库
以下所有库都实现了必要的特性和 bevy_prng
兼容的特性行为。可以通过向该库/存储库提交PR来添加额外的PRNG库,前提是PRNG实现了 Debug
、Clone
、PartialEq
以及可选的 Serialize
/Deserialize
serde
特性,并且这些特性放在合适的特性标志后面。
密码学安全的PRNG
非密码学安全的PRNG
支持的版本 & MSRV
bevy_prng
使用与 bevy
相同的MSRV。
bevy |
bevy_prng |
---|---|
v0.13 | v0.5 |
v0.12 | v0.2 |
v0.11 | v0.1 |
rand_core
的版本
bevy_prng |
rand_core |
rand |
---|---|---|
rand_chacha |
rand_xoshiro |
rand_pcg |
rand_pcg
rand_pcg
rand_pcg
rand_pcg
rand_pcg
rand_pcg
rand_pcg
rand_pcg