这是我在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 )
以上似乎对我来说非常合适。谢谢。 :)
答案 0 :(得分:2)
确实 - Pygame中的所有绘图和transofmr函数都接受“surface”作为第一个参数。实际上,在pygame中,“表面”是图像。
显示窗口也只是一个表面 - 虽然是一个专门的表面,其内容会反映在屏幕上。但是,您可以使用pygame.transform.smoothscale
获取屏幕表面的缩略图副本,然后使用屏幕对象本身的blit
方法将其粘贴到屏幕上。
如果要继续这样做,粘贴的角落也应该被复制,就像一个指向自己输出的摄像机 - 所以“正确的方法”是这样做:保持yoru绘图在一个单独的,在内存表面,将它blit到屏幕表面,然后将其上方的缩略图blit。