Pygame - 如果你使用一个比 surface 更小的 rect 进行 blit 操作会发生什么?

3
在这个blit调用中。
screen = pygame.Surface(640, 480)
bgsurf = pygame.Surface(640, 480)
new_rect = pygame.Rect(0, 0, 80, 80)

screen.blit(bgsurf, new_rect, new_rect)

Pygame是如何决定将bgsurf的哪一部分复制到屏幕上的new_rect区域的?

1个回答

3

来自pygame文档:

blit(source, dest, area=None, special_flags = 0) -> Rect

将源Surface绘制到此Surface上。绘制可以使用dest参数定位。Dest可以是代表源的左上角的一对坐标。也可以将Rect作为目标传递,矩形的左上角将用作blit的位置。目标矩形的大小不影响blit。

还可以传递一个可选的area矩形。这代表要绘制的源Surface的较小部分。

因此,如您所见,pygame会在(0,0)处blit整个Surface。如果您想blit Surface的一部分,则需要传递area矩形。

编辑:

在您的情况下,它将把由new_rect给出的子表面blit到屏幕上,其中左上角将放置在(0,0)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接