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



我会尽量简短而彻底。

我正在以下链接中遵循 tcod Rouguelike 教程:

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

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

def recompute_fov(fov_map, x, y, radius=1, light_walls=True, algorithm=0):
libtcod.map_compute_fov(fov_map, x, y, radius, light_walls, algorithm)

编译器会吐出以下错误:

File "C:Usersdragoanaconda3envsRoguelikelibsite-packagestcodlibtcodpy.py", line 3320, in map_compute_fov
m.compute_fov(x, y, radius, light_walls, algo)
AttributeError: 'NoneType' object has no attribute 'compute_fov'
Process finished with exit code 1

我至少知道足够多,知道它在谈论 tcod 包本身。但我不明白。值得庆幸的是,PyCharm给了我一点见解...

PyCharm对libtcod.map_compute_fov的见解

所以我听从了它的建议,把libtcod.map_compute_fov改成了libtcod.map.compute_fov

它给了我另一个错误:

File "C:UsersdragoPycharmProjectsRoguelikemap_objectsfov_functions.py", line 13, in recompute_fov
libtcod.map.compute_fov(fov_map, x, y, radius, light_walls, algorithm)
TypeError: compute_fov() takes from 2 to 5 positional arguments but 6 were given
Process finished with exit code 1

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


我仍在学习Python,因此是教程。我明白数组是什么。但是我不知道如何让我现有的代码与这个新功能/模块一起工作(我把这两个混为一谈(,因为旧的被折旧了。

任何帮助将不胜感激。

我也在使用Python 3.8。

我只是遇到了同样的问题,发现把

def recompute_fov(fov_map, x, y, radius, light_walls=True, algorithm=0):
libtcod.map_compute_fov(fov_map, x, y, radius, light_walls, algorithm)

在代码末尾fov_functions.py修复了

"属性错误:"NoneType"对象没有属性'compute_fov'">

我和你一样有问题。

以下是教程作者(从第 4 部分开始(fov_functions.py设置的方式:

import libtcodpy as libtcod

def initialize_fov(game_map):
fov_map = libtcod.map_new(game_map.width, game_map.height)
for y in range(game_map.height):
for x in range(game_map.width):
libtcod.map_set_properties(fov_map, x, y, not game_map.tiles[x][y].block_sight,
not game_map.tiles[x][y].blocked)
return fov_map

def recompute_fov(fov_map, x, y, radius, light_walls=True, algorithm=0):
libtcod.map_compute_fov(fov_map, x, y, radius, light_walls, algorithm)

以下是作者放在教程每个部分末尾的第 4 部分的代码链接:https://github.com/TStand90/roguelike_tutorial_revised/tree/part4 这是我找到与我的比较的fov_functions文件的地方

作者将代码放在每个部分的末尾:https://i.stack.imgur.com/AgjCp.png

希望这对您有所帮助!

相关内容

  • 没有找到相关文章

最新更新