如何保存在pygame中代替矩形的所有像素?
Posted
技术标签:
【中文标题】如何保存在pygame中代替矩形的所有像素?【英文标题】:How to save all pixels that were in the place of a rect in pygame? 【发布时间】:2021-01-23 10:46:15 【问题描述】:有没有办法在绘制矩形之前保存所有像素?这样当我在不同的地方再次绘制该矩形时,我可以用保存的像素替换旧的,而不是用颜色填充该区域?
【问题讨论】:
矩形是什么意思?你的意思是pygame.Rect
?或者只是屏幕上的一个矩形区域?该区域是以前由某个命令绘制的还是您手动填充了像素?你能举个代码例子吗?因为“带像素的矩形”只是一个pygame.Surface
,所以在屏幕上的任何地方都应该不成问题。所以一个例子会更清楚地展示你的问题。
@Rabbid76 已经解决了。忘了说谢谢
【参考方案1】:
您可以使用subsurface
方法定义直接链接到源表面的子表面:
subsurface(Rect) -> Surface
返回一个与其新父级共享其像素的新 Surface。新 Surface 被视为原始 Surface 的子级。对任一 Surface 像素的修改都会相互影响。
创建地下copy 以永久存储它:
rect_area = pygame.Rect(x, y, width, height)
area_surf = screen.subsurface(rect_area).copy()
稍后使用Surface替换矩形区域:
screen.blit(area_surf, region)
【讨论】:
以上是关于如何保存在pygame中代替矩形的所有像素?的主要内容,如果未能解决你的问题,请参考以下文章