OBJFILELOADER - pygame

OBJFILELOADER - pygame

所以我尝试了 运行 the code 但它给出了列表超出索引范围的错误。我将索引从 1 更改为 0,但屏幕只弹出黑色。我怎样才能更改代码以使其工作?

您只需将 .obj 文件的 filename/path 传递给 OBJ class:

obj = OBJ('suzzane.obj')

此外,该脚本是在 Python 2 中编写的,如果您想将其与 Python 3 一起使用,则必须更新一些内容。

更改此行,

raise ValueError, "mtl file doesn't start with newmtl stmt"

至:

raise ValueError("mtl file doesn't start with newmtl stmt")

并且所有 map 迭代器都必须变成列表:

mtl[values[0]] = map(float, values[1:])
# Just call `list()`.
mtl[values[0]] = list(map(float, values[1:]))

尝试生成 wavefront(.obj) 文件并确保将 suzzane.objsuzzane.mtl 文件与您的代码放在同一个目录中,

而不是:

Sys.arg[0]

使用:

obj = OBJ('suzzane.obj')