2011-02-01 37 views
21

我似乎无法在任何地方找到这个问题的答案。我意识到你必须使用pyOpenGL或类似的东西做OpenGL的东西,但我想知道如果它可能做非常基本的3D图形没有任何其他依赖。pyGame做3d吗?

回答

15

不,Pygame是SDL的封装,它是一个2D API。 Pygame不提供任何3D功能,可能永远不会。

Python的3D库包括Panda3DDirectPython,虽然它们可能相当复杂,特别是后者。

+3

这是什么问题? Pygame不会做3D。 PyOpenGL可以做3d。重新阅读他的问题。 – Kylotan 2011-09-23 12:06:29

+2

是的,我现在正在写一个3D游戏。而我甚至没有使用OpenGL。我正在使用像Horst JENS发布的方法。 – Cnorwood7641 2014-04-11 20:04:00

11

那么,如果你可以做2D,你总是可以做3D。所有的三维真的是倾斜的二维表面给人的印象是深入的东西。真正的问题是它可以做得很好,你会想要吗?在浏览pyGame文档一段时间后,它看起来只是一个SDL包装器。 SDL不适用于3D编程,所以真正问题的答案是,不,我甚至不会尝试。

2

Python Soya可以在pygame表面上渲染3D图形。

6

只能与pygame的做伪3D游戏(如“毁灭战士”):

http://code.google.com/p/gh0stenstein/

,如果你浏览网站pygame.org您可能会发现更多与蟒蛇进行“3D”游戏和pygame。

但是,如果你真的想进入3D编程,你应该看看OpenGl,Blender或任何其他真正的3D库。

0

Pygame中从未本意要做3D,但是有一种方法可以用任何2D图形库来做3D。所有你需要的是以下功能,它将3d点转换为2d点,这使您可以通过在屏幕上绘制线条来制作任何3D形状。

def convert_to_2d(point=[0,0,0]): 
    return [point[0]*(point[2]*.3),point[1]*(point[2]*.3)] 

这被称为伪3d或2.5d。这可以完成,但速度可能会很慢,而且很难完成,所以建议您使用一个用于3d的库。