2012-04-06 56 views
2

這僅僅是我在pygame的第二天,我對許多函數並不瞭解。下面是要顯示什麼,我做我的表面上(窗口)的樣品Pygame - 將表面作爲圖像存儲

for c in nStations: 
    pygame.time.wait(20) 
    pygame.draw.circle(window, c.tColor, c.tPosition, c.iRadius) 
    pygame.display.update() 

這是循環的n數圈(一個元組)。現在,這將重複總共5-6次。我希望將表面窗口存儲/保存爲圖像(或子表面),並將其作爲縮略圖/鏈接放置在窗口的右上角。

可能嗎?或者是pygame這不是一個好的圖書館?我也嘗試過cocos2d,但與pygame相比,它的文檔很差。

如果我的問題沒有任何意義,請回復。我會繼續更新它。

P.S.我見過python.surface庫函數。和surface.copy似乎是我正在尋找,但我可以存儲曲面作爲縮略圖/圖像之前複製和進一步編輯它?

編輯 - >閱讀jsbueno的答覆,我就是這樣做後:

tThumbs.append(pygame.transform.smoothscale(window, (32, 32))) 
    # the above statement inside drawing-circle loop 

i = 1 
for thumb in tThumbs: 
    window.blit(thumb, (1050, 36*i)) 
    pygame.display.update() 
    i += 1 
    pygame.time.wait(200) 

上面似乎完美地爲我工作。謝謝。 :)

回答

2

事實上 - Pygame中的所有繪圖和transofmr函數接受一個「表面」作爲第一個參數。其實在pygame中,一個「表面」的一個圖像。

顯示窗口只是一個表面 - 雖然是一個專門的,其內容反映在屏幕上。但是,您可以使用pygame.transform.smoothscale獲取屏幕表面的縮略圖副本,然後將屏幕對象的blit方法粘貼到屏幕上。

如果這是要完成continuoulsy,粘貼的角落也烏爾德被複制,例如攝像機指着自己的輸出 - 這樣的「正確的方式」來做到這一點是:保持夜繪製INA獨立的,在內存表面,將其粘貼到屏幕表面,然後將縮略圖粘貼到屏幕上方。

+0

我想重新引述一下自己:>這僅僅是我在pygame的第二天,我對許多功能並不瞭解。編輯該問題以反思我所做的事情。 – hjpotter92 2012-04-06 14:02:39

+0

請告訴我是否有一個更短/更快的方法來實現它。 – hjpotter92 2012-04-06 14:05:53

+0

我怎樣才能調用縮略圖?例如。點擊縮略圖必須將該表面展開。 – hjpotter92 2012-04-06 18:18:16