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.obj
和 suzzane.mtl
文件与您的代码放在同一个目录中,
而不是:
Sys.arg[0]
使用:
obj = OBJ('suzzane.obj')
所以我尝试了 运行 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.obj
和 suzzane.mtl
文件与您的代码放在同一个目录中,
而不是:
Sys.arg[0]
使用:
obj = OBJ('suzzane.obj')