Pygame blit area参数?

问题描述 投票:3回答:1

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

据我所知,area参数是(pos_x,pos_y,width,height)。

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

但是,对我来说,图像始终绘制在左上角,而area参数中的前两个数字会改变所绘制零件的亮度。

我的代码:

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的图像,比第一次绘制图像时更亮。

亲切的问候

python pygame partial area blit
1个回答
3
投票

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

self.display.blit(image, (200, 300), (640,512,200,200))
© www.soinside.com 2019 - 2024. All rights reserved.