OBJFILELOADER - pygame

家住魔仙堡 提交于 2019-12-03 00:49:56

问题


So I tried running the code but it gives list out of index range error. I changed the index from 1 to 0, but the screen only pops up black. How could I change the code to make it work?


回答1:


You just have to pass the filename/path of the .obj file to the OBJ class:

obj = OBJ('suzzane.obj')

Also, the script was written in Python 2 and if you want to use it with Python 3, you have to update a few things.

Change this line,

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

to:

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

And all the map iterators have to be turned into lists:

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



回答2:


Try generating wavefront(.obj) file and make sure to put the suzzane.obj and suzzane.mtl file on one directory with your code,

And instead of:

Sys.arg[0]

Use:

obj = OBJ('suzzane.obj')



来源:https://stackoverflow.com/questions/46609928/objfileloader-pygame

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!