22 个稳定版本 (4 个主要版本)
使用旧的 Rust 2015
5.0.1 | 2019 年 6 月 9 日 |
---|---|
5.0.0 | 2018 年 12 月 19 日 |
4.1.0 | 2017 年 9 月 4 日 |
4.0.1 | 2016 年 6 月 21 日 |
1.5.2 | 2015 年 1 月 4 日 |
在 图形 API 中排名第 318
每月下载量 1,474 次
在 7 个包中使用(通过 tcod)
23MB
29K SLoC
包含(静态库,8MB)libSDL2.a、(静态库,6MB)libSDL2.a、(Windows DLL,1MB)SDL2.dll、(Windows DLL,1MB)SDL2.dll、(Windows DLL,1MB)SDL2.dll、(Windows DLL,1MB)SDL2.dll 以及 12 个更多。
警告:不再维护
该项目不再积极开发和维护。请接受我们的道歉。
可能还会合并开放的拉取请求,但我们不期望调查或修复开放的问题。
替代方案
有两个出色的替代方案可以检查!它们都是用纯 Rust 编写的(更少的机会出现库链接或依赖问题,更容易部署)并且针对网络浏览器。
- bracket-lib
- 由 Herbert "TheBracket" 编写,也是 Nox Futura 的作者
- 附带一个 全面的教程
- doryen-rs
- 由 Jice 编写,libtcod(该项目提供绑定)的原始作者
- libtcod 的精神继承者
libtcod 的 Rust 绑定
libtcod,也称为 "The Doryen 库" 是一个小型库,专为编写 rogue-like 游戏而设计。它提供了一系列有用的功能,例如
- 文本图形 API,比 Curses 或 OpenGL 好得多
- 颜色!(超过 16 种)
- 键盘和鼠标输入
- 路径查找
- 视野
- 可移植(在 linux、windows 和 mac 上运行)
- 还有很多其他的东西
本项目为libtcod v1.6.3提供了Rust绑定。
本项目遵循语义化版本控制。由于我们处于1.0.0
版本,所以任何更改都是可以的。API可以在任何时候更改。
事实上,它可能应该更改!如果您有更好的想法,使其更安全或更适合Rust开发者,请告诉我们。
文档
我们对每个新提交都运行rustdoc
。
http://tomassedovic.github.io/tcod-rs/tcod/index.html
但这主要用于类型、函数签名等。我们实际文档不多,但您总是可以查看官方文档
https://libtcod.readthedocs.io/en/stable/
当前状态
所有原始的tcod绑定都可通过tcod-sys
crate获取。此外,我们还想提供更安全(并且更符合Rust风格)的封装器--如果您可以在unsafe
块外段错误,那就是一个错误。但是安全绑定尚未完成。
已实现
- 颜色
- 控制台
- 大部分的系统层(帧率、时间、全屏、截图)
- 视野
- 地图
- 路径查找(包括A*和Dijkstra算法)
- 伪随机数生成器(优先使用
rand
crate,但在API要求内置生成器的地方除外) - 名称生成器
- 图像工具包
- 行工具包
- 噪声
- BSP工具包
由于Rust已经提供,可能永远不会实现
- 文件系统实用工具
- 容器
- 压缩工具包(可能存在更好的Rust库)
尚未实现,但将来某时应该会发生
- 所有其他东西!
如何使用此工具
tcod-rs
依赖于libtcod
,因此您需要构建或下载官方版本。与tcod-sys
捆绑的已知可工作的libtcod
版本将由Cargo为您构建,但您需要安装构建依赖项。
或者,您可以为预编译的libtcod库提供覆盖构建过程的选项。见下文。
要使用tcod-rs
,将以下内容添加到您的游戏Cargo.toml
文件中
[dependencies]
tcod = "0.15"
在Linux上构建
运行您分发的等效命令
$ sudo apt-get install gcc g++ make libsdl2-dev
$ cd yourgame
$ cargo build --release
$ cargo run --release
。
构建动态库
默认情况下,tcod-rs
将在Linux上静态构建库,因为将代码包含到可执行文件中通常更方便。要构建动态库,请在Cargo.toml
中为tcod-sys
指定dynlib
功能
[dependencies.tcod-sys]
version = "*"
features = ["dynlib"]
在Windows(使用MSVC)上构建
请确保您已安装Visual Studio 2013或更高版本,且包含C++工具选项。您还需要“MSVC ABI”版本的Rust编译器(而不是“GNU ABI”版本)。
然后,设置编译环境,确保Rust在您的PATH
中,并运行Cargo
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64
set PATH=%PATH%;C:\Program Files (x86)\Rust\bin
cd yourgame
cargo build --release
cargo run --release
在Windows(使用MinGW)上构建
您必须下载并安装MinGW。然后,将Rust和MinGW的bin目录添加到您的路径中,并编译您的游戏
set PATH=%PATH%;C:\Program Files (x86)\Rust\bin;C:\MinGW\bin
cd yourgame
cargo build --release
cargo run --release
在Mac OS X上构建
- 安装Homebrew
- 运行
$ brew install pkg-config sdl2
$ cd yourgame
$ cargo build --release
$ cargo run --release
这基于Jared McFarland的Roguelike教程中的说明。
要测试此,您可以直接克隆此存储库并运行提供的示例之一
$ git clone https://github.com/tomassedovic/tcod-rs.git
$ cd tcod-rs
$ cargo run --example keyboard
使用现有二进制分发
如果您不想自己构建libtcod,您可以指示Cargo覆盖构建脚本。请参阅存储库中的.cargo/config
文件中的示例。
注意:官方MinGW预构建库(适用于Windows)似乎与tcod-rs不兼容。我们不确定具体原因,因此非常感谢任何人的帮助!
贡献
原始绑定使用rust-bindgen生成,位于src/ffi.rs
。安全的(希望是?)包装器基于它们构建在src/lib.rs
。
这还远未完成,欢迎贡献缺少的功能包装器、文档和示例。如果你的补丁(包括任何补丁——包括错别字)被接受,你将获得提交权限,如果你想要的话。
我们接受GitHub以及常规的拉取请求(即,通过电子邮件或推文发送你的功能分支的URL)。
你可以通过运行以下命令重新生成原始绑定:
bindgen -builtins -l tcod include/libtcod.h -o src/ffi.rs
贡献者
- Bastien Léonard,@bastienleonard,[email protected]
- Darren Kaste,@dkaste,[email protected]
- Edu Garcia,@Arcnor,[email protected]
- Guillermo Galizzi [email protected]
- Gustorn [email protected]
- Jared McFarland,@jaredonline,[email protected]
- Jonny Gilchrist,@jgilchrist
- LaylConway [email protected]
- Moredread [email protected]
- Nikita Pekin
- Paul Sanford,@pmsanford,[email protected]
- Pranz,[email protected]
- Tomas Sedovic,@tomassedovic,[email protected]
- Tomasz Barański,[email protected]
许可证
tcod-rs根据WTFPL v2授权。有关许可证的完整文本,请参阅COPYING.txt
(别担心——它非常简短且直接)。