Pygame blit区参数?

Pygame blit area parameter?

我目前正在尝试再次对已绘制图像的一部分进行 blit。为此,我读到一个可以在使用 blit 时使用可选的第三个区域参数。我不知道为什么,但那个参数对我来说很奇怪。

根据我的理解,面积参数是(pos_x、pos_y、宽度、高度)。

我的屏幕是 1280x1024,所以如果我想让我想重绘的部分从中心开始,我会传递类似 (640, 512, 200, 200) 的内容,并且应该绘制图像的 200x200 部分从中心开始。

然而,对我来说,图像总是在左上角绘制,区域参数中的前两个数字会改变正在绘制的部分的亮度。

我的代码:

image = pygame.image.load("image.jpg")
image = pygame.transform.scale(image, (self.display.get_width(), self.display.get_height()))
self.display.blit(image, (0,0))
# Drawing something here which has to be overwritten, but cannot redraw everything.
self.display.blit(image, (0,0), (640,512,200,200))

第二个 blit 只是在我的屏幕左上角绘制了一个 200x200 的图像,比第一次绘制的图像更亮。

亲切的问候

您将 (0, 0) 作为 blit 目的地(第二个参数)传递,因此您的表面出现在显示屏的左上角。如果你想在其他地方绘制它,例如在 (200, 300) 处,你必须将这些坐标作为第二个参数传递:

self.display.blit(image, (200, 300), (640,512,200,200))