2011-02-01 65 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的庫。