2012-04-25 42 views
0

我開始在2D滾動拍攝模擬遊戲中工作,我想知道pygame是否合適。我想在接近60 fps的同時用數百個精靈(當然大多是子彈)爲一個滾動背景製作動畫。 pygame可行嗎?從我讀過的內容來看,我傾向於否定,但我希望得到另外一個對pygame有更多經驗的人的意見。使用Pygame製作滾動拍攝模式

我也在尋找PyGame使用PyOpenGL,但我絕對沒有使用OpenGL的經驗。在這種情況下,OpenGL與原生pygame圖形相比能否更好地工作,並且在Pygame中使用PyOpenGL有沒有很好的OpenGL/PyOpenGL教程?

+0

我不是暗示pygame不能完成這項工作,但是你看過[python遊戲庫列表](http://wiki.python.org/moin/PythonGameLibraries)嗎? – Darthfett 2012-04-25 15:13:54

回答

0

Pygame和2D CPU圖形一樣好。所有圖形都以C語言實現(PyGame包裝SDL),因此代碼爲將近與同等C軟件渲染器一樣快。這就是說,它仍然(基本上)是一個軟件渲染器,並且每個現代計算機中都有這樣一個有趣的設備,稱爲GPU,旨在實現這一點。 PyOpenGL/OpenGL將利用它,所以是的,絕對PyOpenGL將呈現比PyGame更快。

底線:

pygame的是快,但速度不及PyOpenGL。對於數百個屏幕上的精靈來說,這將主要是一個邏輯問題(Python邏輯很慢,即使是解釋型語言標準)。在SDL中重寫它會使其更快(因爲C/C++比Python更快)。你也可以使用PyOpenGL,我預測在這種情況下會顯着提高性能,儘管不是很顯着(但它更難以使用很多)。

就像我說的那樣,但我認爲這主要是一個邏輯問題。對於使用PyOpenGL有一些需要說明的內容,但正如他們所說的,你將要做的最大的優化是當你的代碼第一次工作時。

0

pygame是根據我的蟒蛇2D遊戲的最佳解決方案。您可以保存Surfaces使用其優化的Sprites動畫,所以我認爲這是最快的解決方案:至於開發過程而不是代碼執行。