2 个不稳定版本

0.2.0 2024年8月7日
0.1.1 2024年8月1日
0.1.0 2024年8月1日

#281游戏开发

Download history 213/week @ 2024-07-29 116/week @ 2024-08-05

每月 329 次下载

MIT 许可证

18KB
200

Build Status Docs Status REUSE status

🏰 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