我有一些代码涉及Try和Except子句。当我在控制台中以空闲状态运行它时,它工作得很好,而且从不崩溃。但是,当我编译它时,它是失败的捕捉错误,所以程序崩溃,这是让我发疯!在
代码是:
if self.height == 6:
try:
libtcod.path_compute(minimap[self.mapx][self.mapy].path3,self.x+60, self.y+60,target_x+60, target_y+60)
stepx, stepy = libtcod.path_get(minimap[self.mapx][self.mapy].path3, 0)
dx = stepx - self.x - 60
dy = stepy - self.y - 60
except:
success = False
我正在使用libtcod库。这是stepx/stepy位,它有时失败,问题是,我知道它有时会失败,它就是抓不住它!我试过让它在stepx部分前后打印一条消息,它将打印第一部分,但不打印后一部分。有很多选项可以导致成功=False,而这只有一个,然后我处理如果成功==False会发生什么(这是一个游戏,测试一个敌人是否可以找到你,如果没有,那么它会尝试其他方法)。我不知道为什么它在未编译时可以捕获它,但在编译时却完全失败。有人能给我解释一下吗?在
提前谢谢!在
尝试检查传递给使程序崩溃的libtcod函数的所有参数(在本例中是
libtcod.path_get
)。当您传入不正确的参数而不是发出一条很好的错误消息时,Libtcod常常会出现错误,我在fieldofview工具箱中遇到了同样的问题。在如果这些值在使用py2exe“编译”的版本中由于某种原因而不同,那么这就可以解释为什么它只在某些时候崩溃。在
这部分看起来有问题:
如果有这样的嵌套数组:
^{pr2}$然后要引用位置(x,y)的项,必须使用
minimap[y][x]
编辑:
libtcod.path_get
的第一个参数应该是用于路径查找的映射,由path_new_using_map
或{相关问题 更多 >
编程相关推荐