问题标签 [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 回答
133 浏览

python - 为 python 安装 libtcod 在终端返回“访问被拒绝”

我一直在尝试在线遵循 python3+libtcod roguelike 教程,但我被困在第一个障碍上。

一旦我尝试将“libtcodpy”导入 python,我的终端就会收到“拒绝访问”。

我已经尝试以管理员身份运行,但访问被拒绝,我还重新启动了计算机,并检查了安全性,它声称计算机上的所有用户都可以完全访问 python 和我解压缩 libtcod 的文件。

有谁知道如何解决这个问题?这可能是未来的一个问题,还是只是 libtcod 的问题?

在为 python 安装其他库时,我以后可以做些什么来避免“访问被拒绝”?

我正在使用带有最新版本的 python 和最新版本的 libtcod 的 Windows 10。

0 投票
1 回答
677 浏览

python - int() 参数必须是字符串、类似字节的对象或数字,而不是“列表” Python python-tcod Roguelike

我正在使用 python-tocd roguelike 引擎制作一个 roguelike 游戏。我的游戏基于 python libtcod roguelike 教程。

我正在制作一个用于生成地图的常量列表

现在我在函数中使用一些代码来确定房间的大小。

我在这里定义了变量

现在当我启动游戏时,会出现这种情况?

我应该怎么办?

0 投票
0 回答
191 浏览

python - libtcod/Python:使用 sys_check_for_event 而不是 sys_wait_for_event 的 CPU 使用率飙升

我正在使用 libtcod 的CFFI 端口在 Python 3 中构建游戏。

使用该方法处理用户输入非常有效sys_wait_for_event(立即捕获键盘和鼠标事件),但是这阻止了我使游戏成为实时,因为该方法仅在用户执行某些操作时返回事件,而不是在我希望游戏执行时(例如)移动敌人。

我可以切换到,sys_check_for_event但不知何故,这会将 CPU 使用率提高到 100%,并且似乎无法捕获鼠标移动。就好像它过于频繁地检查事件一样。试图通过调用每个循环来减慢它time.sleep也不起作用。

我使用以下代码:

我该如何解决这个问题 -

  • 有没有办法使用sys_wait_for_event直到一段时间过去,之后我可以让游戏在没有用户输入的情况下更新其状态,

  • 有什么问题吗sys_check_for_event

  • 我用错了吗?

谢谢!

更新我认为有一个错误sys_check_for_event:它返回除鼠标移动之外的所有事件。我通过查看对象中的(x, y)坐标对此进行了测试mouse——即使这些数字发生变化,该方法的输出仍然保持不变,0即没有事件。

0 投票
1 回答
1443 浏览

python - 如何在 PyCharm 中正确导入 libtcod?

我正在尝试建立一个 roguelike Python 项目,但我似乎无法将 libtcod 模块导入我的项目。这个 helloworld 崩溃了,IDE 一直告诉我没有名为 libtcodpy 的模块。

将模块导入 Python 项目的正确方法是什么?我已经习惯了 Java,所以我期待一些类似于 Maven 的东西来管理依赖项。PyCharm 中确实似乎也有类似的东西,这个 venv 的包管理器,从我收集的内容中,它可以将项目特定的东西与 OS 或 python 全局的东西隔离开来: 在此处输入图像描述 但是 libtcod 根本不存在于单击“+”按钮后出现的相当详尽的模块列表中,只是一些与 libtcod 库有关的其他模块(我猜?)。此外,我在设置 libtcod up 时找到的所有教程都建议您手动将文件复制到某处或运行一些我认为以某种方式导入的命令和其他此类解决方案,所有这些我都尝试过,但都没有奏效。如果可以避免的话,我不想通过使用这种处理依赖关系的大杂烩方式来污染我的项目结构。

:如何让 libtcod 在我的 PyCharm 项目中以最干净和遵守约定的方式工作?

0 投票
0 回答
45 浏览

libtcod - 即使包含在 MacOS Mojave 上的 Xcode 上也找不到 libtcod.hpp?

我正在尝试通过 MacOS 上的 libtcod 库创建自己的游戏。我已经为 mac 安装了库,并确保所有文件都在文件夹中。当我尝试在 Xcode 中测试我的代码时,它说找不到头文件 (libtcod.hpp)。我已经在框架和库部分中包含了所有文件,因此对于代码找不到头文件的原因并不完全有意义。

这是我正在关注的教程:http ://www.roguebasin.com/index.php?title=Complete_roguelike_tutorial_using_C%2B%2B_and_libtcod_-_part_1:_setting_up#Installing_the_compiler

代码截图:https ://imgur.com/1O48PxP

0 投票
1 回答
266 浏览

python - 如何在 libtcod 中使用汉字?

我有一个想法,在我的类似 ASCII 的 Roguelike 控制台游戏中使用汉字作为实体。我用的是python-tcod,不知道有没有办法在里面使用汉字。

我尝试通过console_set_custom_font函数设置中文字体,该函数在显示英文字符时效果很好,但对于中文字符则不行。他们只是不显示。

我试图让我的角色看起来像你,但得到了这个。(您可以看到角色移动的 FOV 以及它如何覆盖物品。)

失败.gif

例如,这就是它以前的工作方式。

成功 gif

源代码取自 libtcod python教程

upd:我尝试将 '你'.encode() 与 gb18030、gbk、gb2312、hz、cp950、bi0ghkscs、big5、iso2022_jp_2 编码一起使用,但它给了我错误符号的输出。例如,段落符号或 tilda ('~'),或上面带有点的几个字母。

upd2:我尝试使用另一种编码的代码

呈现 char 的共同代码('你' char 是实体的 char 属性)

0 投票
2 回答
43 浏览

python - 将变量分配给列表中的元组

我目前正在使用一个函数来返回一个元组(坐标)列表。我需要分配这些坐标变量,以便我可以在 for 循环中使用它们。

我的功能是:

我得到print(new_connect)输出:

我需要分配这些元组变量,即 (x, y)
所以它们可以在以下 for 循环中使用:

哪个(应该)绘制坐标并更改它们的平铺值。

任何帮助是极大的赞赏。我一直在努力解决这个问题,感觉我错过了一些超级简单的东西。

0 投票
2 回答
222 浏览

python - 当它应该在范围内时,列出超出范围的索引

我有这个程序试图将它周围的网格空间的数量相加为某个值,并且它不断给出错误“IndexError:list out of range”。我尝试将其设置为晚开始列和行,并提前结束一列和行以达到相同的效果。错误点特别指向 [x+1][y+1]。

0 投票
1 回答
218 浏览

python - Roguelike 开发障碍!libtcod.map_compute_fov 贬值了吗?

我会尽量简明扼要。

我正在关注以下链接中的 tcod Rouguelike 教程:

http://rogueliketutorials.com/tutorials/tcod/

我正在使用 PyCharm 社区版,但我认为这并不重要。一切进展顺利,直到第 4 部分结束,我们为玩家实施了 FOV。当我尝试使用以下代码(在教程中给出)运行主引擎时:

编译器吐出以下错误:

我至少知道它是在谈论 tcod 包本身。但我不明白。谢天谢地,PyCharm 给了我一些见解……

PyCharm 对 libtcod.map_compute_fov 的洞察

所以我听从了它的建议,将 libtcod.map_compute_fov 更改为 libtcod.map.compute_fov

它给了我另一个错误:

因此,PyCharm 再次能够告诉我这个新函数,以及它如何使用不同的值。它没有使用 FOV_map,而是使用称为 pov 的东西,并且该 pov 需要一个包含 2 个值的数组。它也与透明度有关,在这一点上,为了我想要完成的目的,它超出了我的想象。


我仍在学习 Python,因此本教程。我知道数组是什么。但是我不知道如何使我现有的代码与这个新功能/模块一起工作(我把两者混在一起了),因为旧的已经贬值了。

任何帮助,将不胜感激。

我也在使用 Python 3.8。

0 投票
0 回答
30 浏览

serialization - Cereal Vector 和 size_t 序列化 - 参数数量错误?

我正在尝试使用 Cereal 序列化这些数据成员,但在 Visual Studio 中出现错误:错误 C2064 术语不计算为采用 1 个参数的函数。有问题的代码是:

并且错误发生在 archive(m_levels) 部分以及它后面的行。