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

Download history 387/week @ 2024-03-13 558/week @ 2024-03-20 473/week @ 2024-03-27 478/week @ 2024-04-03 382/week @ 2024-04-10 563/week @ 2024-04-17 538/week @ 2024-04-24 496/week @ 2024-05-01 488/week @ 2024-05-08 467/week @ 2024-05-15 484/week @ 2024-05-22 510/week @ 2024-05-29 360/week @ 2024-06-05 334/week @ 2024-06-12 386/week @ 2024-06-19 319/week @ 2024-06-26

每月下载量 1,474
7 个包中使用(通过 tcod

WTFPL 许可证

23MB
29K SLoC

C 24K SLoC // 0.2% comments Rust 4K SLoC // 0.0% comments C++ 1.5K SLoC // 0.2% comments Forge Config 29 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 编写的(更少的机会出现库链接或依赖问题,更容易部署)并且针对网络浏览器。

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上构建

  1. 安装Homebrew
  2. 运行
$ 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

贡献者

许可证

tcod-rs根据WTFPL v2授权。有关许可证的完整文本,请参阅COPYING.txt(别担心——它非常简短且直接)。

依赖项