Pygame blit area参数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pygame blit area参数?相关的知识,希望对你有一定的参考价值。

我目前正试图再次对已经绘制的图像进行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的图像,比第一次绘制图像时更亮。

亲切的问候

答案

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

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

以上是关于Pygame blit area参数?的主要内容,如果未能解决你的问题,请参考以下文章

Pygame 没有 blitting 图像,而是吐出类型错误

Pygame blit图像与鼠标事件

Pygame Blitting错误

使用 pygame2.1 的 Blitting 文本无法正常工作

在Pygame中使用screen.blit时,我可以使用.format功能吗?

当 win.blit() 后台 pygame 时滞后