2013-11-20 28 views
4

啊!我對這個python的東西很陌生,我知道如何製作「動畫」的唯一方法是使用單獨的圖片(如每個文件1張圖片)。那麼,我得到了一個精靈表,這對我所需要的是完美的,唯一的問題是它是一個精靈表。我不想花時間,裁剪出每個單個的精靈。如何在Pygame中使用Sprite Sheets?

更多的信息,我是新的 python和pygame。剛開始學習8月份的語言是一個移動速度非常緩慢的課程......所以如果你能解釋你在做什麼,那麼我可以爲未來的項目做到,我真的很感激它。我也使用Python 3.2,如果這有所作爲,因爲我非常肯定Python 2和Python 3之間有一些語法差異。

謝謝!!!!這會幫助我很多。

+2

有一個不錯的spritesheet類,是偉大的恕我直言(和易於理解)... http://www.pygame.org/wiki/Spritesheet –

+0

發佈你的代碼,這給你的問題?還有一些更多的解釋你想要做什麼會是好的(個人而言,我完全不知道什麼是* sprite表*)。 –

+1

將來,您可能想嘗試Google或文檔。搜索谷歌或pygame wiki中的「pygame sprite sheet」,或者您的整個問題標題,都可以找到Joran的鏈接,並將其作爲第一個搜索結果。這樣做可以避免您需要編寫這兩個額外的段落。 Google可以在0.19秒內回答,而不是像人類一樣花3分鐘。另外,我們可能會以您的SO問題爲未來的搜索者擊敗更有用的wiki頁面,從而減慢_everyone_的速度。 – abarnert

回答

3

這真的不是很難做到的......但我在快速搜索找到了最好的示例代碼該做的工作給你一個可用的庫:spritesheet,從一pygame的維基。

所以,你可以開始使用它。我會給你一個適合你的用例的例子,但是你沒有告訴我們你的代碼是什麼樣的或者你想做什麼,所以我不可能給你比那個頁面上已經有的更好的東西,所以:

import spritesheet 
... 
ss = spritesheet.spritesheet('somespritesheet.png') 
# Sprite is 16x16 pixels at location 0,0 in the file... 
image = ss.image_at((0, 0, 16, 16)) 
images = [] 
# Load two images into an array, their transparent bit is (255, 255, 255) 
images = ss.images_at((0, 0, 16, 16),(17, 0, 16,16), colorkey=(255, 255, 255)) 
… 

同時,你可以在spritesheet類閱讀(很簡單)的代碼來了解它是如何工作的。

+0

對不起,如果這是一個非常愚蠢的問題,但是你知道如何找出精靈表中的精靈或者我只需要篡改這些值。就像我必須在GIMP中找到值? –

+0

動畫精靈表中的圖像部分應該具有固定的大小。您所要做的就是根據其中的精靈數量來分割工作表的分辨率。如果有太多的精靈,只需使用簡單的循環進行解析 –

+0

有時候您需要對它進行微調 –