您将图像传输到表面上以用作背景。然后按 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))
您在这里基本上可以做两件事。您可以走简单的路线,然后重新绘制背景......
if event.key == pygame.K_BACKSPACE:
screen.blit(background, (0,0))
或者,如果您希望效率更高一点,可以让 blit 方法仅绘制玩家图像覆盖的背景部分。你可以这样做...
screen.blit(background, (x, y), pygame.Rect(x, y, 62, 62))
第三个参数中的 Rect 将导致 blit 仅绘制位于图像上位置 x,y 的“背景”的 62x62 像素部分。
当然,这假设玩家图像始终位于背景内。如果玩家图像仅部分重叠背景,我不完全确定会发生什么。它可能会抛出异常,或者它会绕到图像的另一侧。
实际上,如果这是一个相当小的项目,第一个选项应该没问题,但如果您出于某种原因担心性能,请尝试第二个选项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)