29个版本
使用旧的Rust 2015
0.15.0 | 2019年6月9日 |
---|---|
0.13.0 | 2018年12月19日 |
0.12.1 | 2017年11月12日 |
0.11.0 | 2017年3月9日 |
0.5.2 | 2015年3月25日 |
#135 in 图形API
1,334 个月下载量
用于 6 crate
24MB
33K SLoC
libtcod的Rust绑定
libtcod,即"Doryen库" 是一个专为编写roguelikes设计的较小型的库。它提供了一些有用的功能,例如
- 文本图形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
块之外发生段错误,则视为一个bug。然而,安全绑定尚未完成。
已实现
- 颜色
- 控制台
- 大部分的系统层(帧率、时间、全屏、截图)
- 视野
- 地图
- 路径查找(包括A*和Dijkstra)
- 伪随机数生成器(优先使用
rand
crate,除非API要求使用内置生成器) - 命名生成器
- 图像工具包
- 行工具包
- 噪声
- BSP工具包
由于Rust已提供,可能永远不会实现
- 文件系统工具
- 容器
- 压缩工具包(可能有一个更好的Rust库)
尚未实现,但将来某个时候应该会实现
- 其他所有内容!
如何使用此工具
tcod-rs
依赖于libtcod
,因此您需要构建或下载官方版本。已知的可工作的libtcod
版本包含在tcod-sys
中,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
中指定dynlib
功能为tcod-sys
。
[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的bin目录和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
(不用担心——它非常简短且直截了当)。