我是Python的初学者,我不清楚函数surface.blit()方法。它有什么作用?这个怎么运作? 关于如何创建它,我已经达到以下几点。
语法: canvas.blit(surface,surfacerect)
为什么只使用rect可以是任何其他形状
答案 0 :(得分:4)
实际使用它可能有所帮助,尽管尽可能简单 - > blitting正在绘制
完成您提到的每个步骤:
这是我们的窗口,由screen = pygame.display.set_mode((width,height))
创建。其中screen
是画布名称。最终需要将所有内容绘制到此画布上,以便我们可以看到它。
这是一个表面,我们将填充图像等对象。它不需要小于窗口大小,它可以自由移动。
使用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()