【问题标题】:How to save all pixels that were in the place of a rect in pygame?如何保存在pygame中代替矩形的所有像素?
【发布时间】:2021-01-23 10:46:15
【问题描述】:

有没有办法在绘制矩形之前保存所有像素?这样当我在不同的地方再次绘制该矩形时,我可以用保存的像素替换旧的,而不是用颜色填充该区域?

【问题讨论】:

  • 矩形是什么意思?你的意思是pygame.Rect?或者只是屏幕上的一个矩形区域?该区域是以前由某个命令绘制的还是您手动填充了像素?你能举个代码例子吗?因为“带像素的矩形”只是一个pygame.Surface,所以在屏幕上的任何地方都应该不成问题。所以一个例子会更清楚地展示你的问题。
  • @Rabbid76 已经解决了。忘了说谢谢

标签: python pygame


【解决方案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)

【讨论】:

    猜你喜欢
    • 2023-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    相关资源
    最近更新 更多