如何保存在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中代替矩形的所有像素?的主要内容,如果未能解决你的问题,请参考以下文章

用pygame绘图后如何配置矩形?

在pygame中旋转一个矩形(不是图像)

如何在 Pygame 中检查变量是不是包含矩形? [复制]

如何在Pygame中给pygame.sprite.rect矩形分配一个 "rect "属性?

如何在pygame中检测两个矩形对象或图像之间的碰撞

在 Pygame 中获取旋转图像的旋转矩形