gpt4 book ai didi

python - Pygame 删除背景图像

转载 作者:太空宇宙 更新时间:2023-11-03 13:04:14 27 4
gpt4 key购买 nike

您将图像 blit 到表面上用作背景。然后你按下按钮 X 在同一表面上 blit 一个图像,你如何删除图像?到目前为止我有这个,但后来我的背景中间出现了一个白色矩形。

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 像素部分。

当然,这假设播放器图像始终位于背景中。如果播放器图像仅部分重叠背景,我不完全确定会发生什么。它可能会抛出一个异常,或者它会绕到图像的另一边。

如果这是一个相当小的项目,实际上第一个选项应该没问题,但如果您出于某种原因担心性能,请尝试第二个选项。

关于python - Pygame 删除背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9286738/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com