问题标签 [libtcod]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
278 浏览

c++ - libtcod c++ 的键盘命令功能

我最近从 SFML 切换到 libtcod 来玩我的 rougelike,因为我发现 libtcod 更适合这类游戏。我找不到任何解决方案的一个问题是如何存储键盘绑定功能。

在 SFML 中,我可以为我的 keyfunctions 执行此操作

在 libtcod 中有一个 TCOD_Key_t 结构(它将替换地图中的 sf::Keyboard::Key),它适用于 F 键、Esc 等特殊键,但对于字母“无”。

有没有办法使用 libtcod 我可以将所有键盘功能放在一张地图中?

0 投票
1 回答
130 浏览

python - Python 2.7 缩进错误

尝试在 Python 解释器中运行我的程序时出现 IndentationError:

我正在使用python 2.7版

以下代码有什么问题?:

0 投票
2 回答
245 浏览

python - Python中的Libtcod访问冲突错误

所以,像许多人一样,我正在阅读关于在 python 中使用 libtcod 的 roguelikes 教程。 http://www.roguebasin.com/index.php?title=Complete_Roguelike_Tutorial,_using_python%2Blibtcod,_part_3

我终于让一切都运行起来了,但是我在某个特定命令上遇到了错误,我不知道如何修复它或者它到底有什么问题。它似乎在教程中使用相同的命令工作,据我所知,我的代码实际上是相同的,并且我使用的是作者提供的下载链接。我的项目文件夹中有 libtcodpy、dundalk12x12_gs_tc.png、libtcod.dll 和 SDL2.dll(复制并粘贴)。如果您需要查看 .py 的其余部分,则只需查看教程第 3 部分地牢生成中的代码。它和我的一模一样,唯一我看不到的是他的 libtcodpy 文件夹,但这是他的下载链接。错误是:

问题在于调用 libtcod.console_set_char_background(con, x, y, color_dark_wall, libtcod.BKGND_SET) 时的 renderall 函数

这是库函数

libtcodpy 与 libtcod.dll 和 SDL2.dll 一起位于我的项目文件夹中。都是 64 位的,包括 python 和我在 64 位 windows 10 上的 PyCharm IDE。早先尝试 32 位,找不到 SDL2.dll。虽然我自己已经修复了这些东西。现在我无法弄清楚什么是错误以及如何在教程 XX 中重写它。抱歉,第一次在这里发帖,没有在另一个线程中看到确切的解决方案,但还有其他一些关于 SDL 问题和 32 位与 64 位的问题。

请给我找一个关于如何在 python 中正确设置 libtcodpy 的非常详细、防延迟的 youtube 视频,或者让我知道我在搞砸什么。

0 投票
0 回答
458 浏览

python - SDL:无法创建窗口

我正在尝试使用 python 和 libtcod 创建简单的 roguelike。问题是当我尝试执行此代码时,控制台显示:

代码:

0 投票
1 回答
1754 浏览

python-2.7 - Python Thread 一直冻结整个程序?

在此之前,我必须说我不像其他语言那样非常熟悉 python 编程。我对寻找其他解决方案非常(也)很恼火,所以提前感谢您的帮助。

我喜欢在空闲时间制作 Roguelike 游戏,所以我尝试了多种方法来使用 C++、C、C#、HTML5 等为我自己的游戏做自己的“引擎”实现和引擎。我以前从未使用过LibTCOD 因为我永远无法让它在 C++ 中工作,唉,这是我最喜欢的编程语言,这是一个我现在不打算谈论的问题,因为它在 C++ 线程中。

可怕的是,LibTCOD 看起来很棒,但提及和精确的文档太少,所以我几乎只能独自工作。最近几天我做了一个小python包来轻松管理python和windows的LibTCOD功能,并使主游戏代码尽可能小。

我尝试添加的最终实现是将主游戏循环传递给线程,处理每个基本游戏功能(如键盘/鼠标更改和屏幕更新),并通过函数调用运行它。

一切正常......但不是在第一个循环步骤之后,因为它冻结了一切并停止工作。

基本上这是有问题的代码:

那里使用的大多数变量都是为了更清晰的调试理解目的,(即使它冻结了“干净”功能)所以我必须把它们放在那里。

上面的'def'是从这里调用的:

对于“事件”系统,我在互联网上找到了这个:

注意:我正在使用 Python 2.7,这是唯一适用于该库的版本,真可惜。

我认为事件系统可能是主要问题。再次阅读代码,我想我也应该对 while 条件应用锁,因此对整个循环,还是没有必要?是否以正确的方式应用了锁?还是我应该使用其他方法使线程正常工作?

顺便提一下,如果主游戏循环在没有线程的主脚本上执行,则一切正常,但是当作为线程调用时一切都失败,或者即使它不是线程本身,而是从“外部”调用,就像在包,所以它不能是图书馆的问题(我认为)。

我不得不说,我只在 Python 中使用过 LibTCOD,因为我不能让它只在它上面工作(至少在 Windows 上)。如果有帮助,我已经看到 python 库的代码只是原始 C 库的“绑定”,所以理解 python 代码并不是什么大问题。对于最后一个陈述,我认为这也是 python 线程的问题,还是我错了?如果我可以做些什么来修复线程工具,请帮助我!

谢谢你们!我希望我的谈话没有让你感到厌烦。

0 投票
0 回答
65 浏览

ruby - 访问 FFI 指针 (libtcod) 内的数据

我正在使用 libtcod 的 ruby​​ 端口,它绑定到 C 函数。特别是,我正在尝试使用此功能:

我这样做是这样的:

(仅供参考,我只是在猜测 MemoryPointer 的大小,这可能是我的第一个问题。我不确定如何找到它所需的实际大小。)

我现在的问题是我不确定如何从mouse. 这个函数的C描述了一个漂亮的外观tcod_mouse,我很想访问它。

0 投票
1 回答
214 浏览

rust - 如果 `char` 不能容纳 >=256 的数字,我该如何使用 libTCOD 图形图块?

我正在尝试使用tcod-rs库将图形图块添加到我的 roguelike 中。

根控制台的put_char_ex功能(或 C 版本,TCOD_putwchar)都只需要chars。要使用切片,根据Python 教程,您必须使用大于 256 的切片编号,因为默认位图字体有 256 个字符。char不能代表这些高数字,所以我被困住了。我该怎么做?

0 投票
1 回答
141 浏览

python - Libtcod python 3 在尝试移动角色时崩溃?

我正在尝试制作一个基本的 roguelike 并遵循本教程:http : //www.roguebasin.com/index.php?title=Complete_Roguelike_Tutorial,_using_python3%2Blibtcod,_part_1 我尝试使用 libtcod 使角色响应鼠标移动。我按照教程进行,一切顺利,我的角色出现在屏幕上,但由于某种原因,当我尝试执行移动命令时程序崩溃了。作为参考,我的代码在这里:

我将问题发布到另一个论坛,他们说我应该将 playerx 和 playery 定义为全局,所以我将其添加到 handle_keys() 函数中,但它只是在启动时崩溃。

0 投票
0 回答
216 浏览

python - 在 MacOS 上为 Rougelike 安装 libtcod

我一直在关注 roguebasin 上的 Python3 指南(http://www.roguebasin.com/index.php?title=Complete_Roguelike_Tutorial,_using_python3%2Blibtcod,_part_0)并且在 libtcod 安装过程中卡住了。我已经完全按照指南进行操作,当涉及到验证 libtcod 安装时,运行命令时

我得到:

我不确定我做错了什么,或者我是否错过了任何步骤。关于如何验证是否已安装 libtcod 以便继续执行本指南的后续步骤的任何想法?

谢谢

编辑添加在我正在关注的指南的链接中

0 投票
1 回答
43 浏览

python - Heroku 服务器上的 Roguelike 游戏:Libtcod 依赖

我正在尝试在 Heroku Python 应用程序中提供游戏逻辑。我正在将libtcod 库用于一些基本任务(主要是视野计算),但我无法让它在那里运行。

现在它被挂在不存在的 libSDL 上。崩溃日志:

自述文件说:“为了能够在 Linux 上编译 libtcod,请确保安装了以下软件包:gcc、g++、make、zlib、libpng12、libsdl1.2、upx、electric-fence、libpng12-dev、libsdl1.2-开发“

我尝试将 libSDL 添加到我的 pipfile 和 requirements.txt 中,但这并不有效。