如果用Python克隆大富翁大亨,您会使用哪些库?
你玩过大富翁大亨这个游戏吗?我觉得它非常好玩。 我很想重新制作这个游戏。不过,遗憾的是,我在3D编程方面没有任何经验。我想,学习openGL相关的东西可能会比较难,特别是要弄清楚用户点击了什么之类的……
如果你要做这个项目,你觉得需要哪些库呢?
2 个回答
4
我推荐用pyglet。它从一开始就使用OpenGL,不依赖那些看起来很糟糕的SDL库,而且它的接口比我见过的其他Python多媒体库要好。
import pyglet
from pyglet.gl import *
class Application(object):
def __init__(self):
self.window = window = pyglet.window.Window()
window.push_handlers(self)
def on_draw(self):
self.window.clear()
glBegin(GL_TRIANGLES)
glVertex2f(0,0)
glVertex2f(200,0)
glVertex2f(200,200)
glEnd()
if __name__=='__main__':
app = Application()
pyglet.app.run()
我从头写了这个代码,给你一个参考。你可以直接从这个开始。
这个库里有一些很有用的东西,比如顶点列表、纹理、调度、Unicode字体,还有一些简单的用户界面组件、事件处理和音频功能。虽然这个库内部结构有点乱,我对它不是特别满意。但这只是我对所有流行库的看法,都是我自己查过的。
我个人对OpenGL的命名空间不太满意。如果能用非C语言的命名空间在前面会更好。这样会给你一些灵活性:
from pyglet.gl import Begin, Vertex2f, TRIANGLES, End
...
Begin(TRIANGLES)
Vertex2f(0,0)
Vertex2f(200,0)
Vertex2f(200,200)
End()
6
pyGame 看起来已经相当成熟,它是建立在一个叫做 SDL 的可靠库之上的。