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

Download history 388/week @ 2024-03-13 496/week @ 2024-03-20 440/week @ 2024-03-27 472/week @ 2024-04-03 351/week @ 2024-04-10 525/week @ 2024-04-17 517/week @ 2024-04-24 466/week @ 2024-05-01 438/week @ 2024-05-08 430/week @ 2024-05-15 451/week @ 2024-05-22 496/week @ 2024-05-29 332/week @ 2024-06-05 285/week @ 2024-06-12 356/week @ 2024-06-19 294/week @ 2024-06-26

1,334 个月下载量
用于 6 crate

WTFPL 许可证

24MB
33K SLoC

C 24K SLoC // 0.2% comments Rust 7.5K SLoC // 0.0% comments C++ 1.5K SLoC // 0.2% comments Forge Config 184 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-syscrate获取。此外,我们希望提供安全(并与Rust风格更一致)的包装器——如果您在unsafe块之外发生段错误,则视为一个bug。然而,安全绑定尚未完成。

已实现

  • 颜色
  • 控制台
  • 大部分的系统层(帧率、时间、全屏、截图)
  • 视野
  • 地图
  • 路径查找(包括A*和Dijkstra)
  • 伪随机数生成器(优先使用randcrate,除非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上构建

  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(不用担心——它非常简短且直截了当)。

依赖关系