如何向pygame.display.update()传入Rect直接更新窗口指定区域?
如何直接指定屏幕区域给pygame.display.update()
其实这事超简单,你完全不用提前创建Rect对象,直接把代表区域的坐标元组传给pygame.display.update()就行!
比如你提到的(100,200,30,40)(这里要确认下:pygame里这个元组的顺序是左、上、宽、高,也就是左侧坐标100、顶部坐标200、宽度30、高度40,和你说的对应上了),直接传进去就生效:
pygame.display.update((100, 200, 30, 40))
要是你想一次性更新好几个不连续的区域,还能传一个元组列表:
pygame.display.update([(100,200,30,40), (500, 300, 60, 80)])
本质上pygame.display.update()内部会自动把你传入的这种元组转换成Rect对象处理,所以完全不用多一步手动创建的操作,直接传坐标元组就搞定啦。
顺便补充个小知识点:如果不给update()传任何参数,它就会更新整个屏幕,效果和pygame.display.flip()一致,但flip()只能全屏更新,局部更新的update()在性能上会更有优势,尤其是游戏里需要刷新的元素不多的时候。
内容的提问来源于stack exchange,提问作者Johnny Dollard
相关产品推荐
相关产品推荐

