2012-11-29 47 views
5

我對python很陌生,但我想通過製作遊戲來學習它,pygame似乎是最好的選擇。由於PyPy是python的最快實現(我認爲),我決定使用那個。 但我不知道如何讓這兩個人一起工作。與PyPy一起使用Pygame

我在窗戶上。

如果有人願意給我一步一步的我需要做的事情,我會非常感激。

到目前爲止,我已經安裝(解壓縮到一個文件夾中)PyPy,將pypy.exe設置爲打開.py文件的默認值,安裝了Pygame並嘗試運行其中一個示例.py文件。 我得到了「找不到模塊pygame」錯誤,並在文件中的第一個導入行。

+3

我建議你先學習Python和PyGame,然後在知道一些東西后再檢查PyPy。 – martineau

+0

嗯,我已經編程過,所以學習不是問題。我甚至在python工作過,但沒有那麼多。 (還是)感謝你的建議。看起來這是我唯一的選擇。 –

回答

7

pygame不是compatible with pypy,所以要使用它,你必須堅持使用cPython。

+1

它可能會注意到,這並不像聽起來那麼糟糕,因爲PyGame在C中完成了大部分繁重的工作,而不是Python。當然,你不會使用PyGame編寫下一個Cyrsis,但是PyGame仍然可以用來編寫一些非常有趣的遊戲,而不需要求助於PyPy來對Python iterpretter進行JIT。 – jlund3

+1

我沒有測試過這個,但通過搜索我看到了https://bitbucket.org/stefanor/pygame-pypy。有沒有人試過這個? –

+0

@HophatAbc,工作! – Ray

4

Pygame遊戲實際上花費很少的時間運行Python代碼。廣大的絕大多數人都在使用SDL fillflip操作。大多數fill是不必要的。這有多重要?那麼,拿我的電腦。假設你寫了一個遊戲,其中有一個循環,只是將背景塗成一種顏色。它將獲得大約40幀/秒。這是因爲它基本上會逐個像素並寫入它。這是使用200 x 300 = 60000操作每幀到什麼都不做。

因此,不是繪製整個背景,而是繪製在前一個框架上繪製的部分。

這使得你的代碼有點複雜,但它會產生一個巨大的性能增加。

另外,不要忘記運行cProfile來查看問題所在的位置。看,不要猜測。

+0

這個答案實際上並沒有解決如何讓PyGame在PyPy下運行的問題...... – jlund3

+0

不,但它是相關的信息,因爲OP選擇了PyPy,因爲他認爲他需要速度。 – ninMonkey

+1

@ jlund3,是的,但我覺得這是[XY問題](http://www.perlmonks.org/index.pl?node_id=542341) –