你把一个图像放到你的表面上作为你的背景。然后按X键在同一个曲面上快速生成图像,如何擦除图像?到目前为止,我已经有了这个,但最后在我的背景中间有一个白色的矩形。
screen = pygame.display.set_mode(1280, 512)
screen.blit(background, (0,0))
while True:
pygame.display.flip() #flip is same as update
for event in pygame.event.get():
if (event.type == pygame.KEYDOWN):
if event.key == pygame.K_SPACE:
screen.blit(player, (x, y))
if event.key == pygame.K_BACKSPACE:
pygame.draw.rect(screen, [255,255,255], (x, y, 62,62))
我个人使用
在这里你基本上可以做两件事。你可以走简单的路线,只需再画一次背景。。。
或者,如果你想让它更有效一点,你可以让blit方法只绘制玩家图像覆盖的背景部分。你可以这样做。。。
第三个参数中的Rect将导致blit只绘制位于图像上x,y位置的“background”的62x62像素部分。
当然,这假设播放器图像总是在背景中。如果播放器图像只是部分重叠的背景,我不完全确定会发生什么。它可能会抛出一个异常,或者只会绕到图像的另一边。
实际上,如果这是一个相当小的项目,第一个选项应该很好,但是如果出于某种原因您关心性能,请尝试第二个选项。
通常blit工作流只是将原始背景blit到屏幕上。
在代码中,您将使用
screen.blit(background, (0,0))
当你开始组合许多曲面时,你可能需要一个变量或一个变量列表来跟踪屏幕状态。
例如
初始化背景
添加精灵
清除精灵
有关Pygame中精灵的更多信息,请参见here。请注意,如果您的背景不是图像背景,而是纯色,则也可以使用
screen.fill([0, 0, 0])
。相关问题 更多 >
编程相关推荐