2 个不稳定版本
0.2.0 | 2024年8月7日 |
---|---|
0.1.1 | 2024年8月1日 |
0.1.0 |
|
#281 在 游戏开发
每月 329 次下载
18KB
200 行
🏰 posturn 🎮
使用异步 Rust 构建回合制游戏
这个工具包提供了一个简单的方法来创建复杂的回合制游戏。为什么不将游戏建模为一个具有转换的单一代码状态机,而是编写一个 Coroutine
呢?
posturn
允许您将回合制游戏逻辑建模为一个 async
函数,该函数会发出事件。当发出事件时,回合制游戏将进入等待输入状态,使用 await
暂停游戏,并将控制权返回给 UI 层。暂停期间,UI 可以处理事件并按照自己的意愿重新渲染。一旦玩家准备好继续,UI 将恢复回合制游戏,并提供任何必要的玩家输入以进行下一回合。
这种方法的优势是将所有 UI 逻辑与回合制游戏代码分开。理论上,以这种方式编写的游戏可以使用 任何 能够处理游戏发出的事件的 frontend。
有关简单示例,请参阅此库中包含的简单 RoShamBo
游戏。
📃 使用方法
要使用 posturn
,只需将以下内容添加到您的 Cargo.toml
[dependencies]
posturn = "0.1.1"
或者,从您的 crate 根目录运行以下命令
cargo add posturn@0.1.1
⚠️ 兼容性
该工具包目前依赖于 genawaiter
来提供一个稳定的 Rust 协程实现。一旦 Coroutine
特性被稳定下来(RFC 2033),posturn
的未来版本可能会转向使用 std
实现,通过 feature
标志进行控制。
目前,需要 genawaiter
依赖。如果您需要 nightly
项目的 std
支持,请参阅 此问题 或在 GitHub 上提交 PR。
⚖️ 许可证
所有 Rust 代码均受 MIT 许可证的许可。
各种其他文件(例如,这个 README
)受以下其中一种许可协议的许可:
posturn
旨在符合 REUSE 标准。每个文件顶部的 SPDX-License-Identifier
显示了与之关联的许可协议。
依赖项
~100KB