什么是python中的surface.blit()函数?它有什么作用?这个怎么运作?

我是Python的初学者,对函数surface.blit()方法不清楚.它有什么作用?这个怎么运作?
关于如何创建它,我谈到了以下几点.

>创建所需大小的画布
>创建较小尺寸的表面,其中包含要显示的对象.
>定义曲面的Rect值.
>在正确位置将画布上的表面弄光(重叠)

语法:canvas.blit(surface,surfacerect)

为什么只使用rect可以是其他形状

最佳答案

实话实说可能会有帮助,尽管尽可能简单->.画图

完成您提到的每个步骤:

>创建所需大小的画布

这是我们的窗口,由screen = pygame.display.set_mode((width,height))创建.其中screen是画布名称.最终,所有内容都需要绘制到此画布上,以便我们可以看到它.

>创建包含要显示对象的较小尺寸的表面

这是我们将在其中填充图像等对象的表面.它不必小于窗口大小,并且可以自由移动.

>定义曲面的Rect值

当使用诸如background = pygame.Surface((width,height))之类的东西创建表面时,请指定其大小.表面上的图像或绘制的项目可以是任何形状或大小,但必须全部包含在此宽度和高度所设置的范围内.

>在正确位置将画布上的表面弄光(重叠)

现在所有重要的位.我们需要获取此表面(背景)并将其绘制到窗口上.为此,我们将调用screen.blit(background,(x,y)),其中(x,y)是我们希望表面左上角在窗口内的位置.该函数表示将背景表面拖到屏幕上并将其放置在(x,y)处.

一个简单的例子:

import pygame

pygame.init()

#### Create a canvas on which to display everything ####
window = (400,400)
screen = pygame.display.set_mode(window)
#### Create a canvas on which to display everything ####

#### Create a surface with the same size as the window ####
background = pygame.Surface(window)
#### Create a surface with the same size as the window ####

#### Populate the surface with objects to be displayed ####
pygame.draw.rect(background,(0,255,255),(20,20,40,40))
pygame.draw.rect(background,(255,0,255),(120,120,50,50))
#### Populate the surface with objects to be displayed ####

#### Blit the surface onto the canvas ####
screen.blit(background,(0,0))
#### Blit the surface onto the canvas ####

#### Update the the display and wait ####
pygame.display.flip()
done = False
while not done:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True
#### Update the the display and wait ####

pygame.quit()