python - Pygame 仅在满足特定条件时显示图片

我正在 pygame 中制作游戏,并且我希望出现一张图片,只有当光标在它上面时。这是我所做的:

while True:

        clock.tick(FPS)

        mx, my = pygame.mouse.get_pos()

        
        darktower_rect = pygame.Rect(x, y, DARK_TOWER.get_width(), DARK_TOWER.get_height())
        if darktower_rect.collidepoint((mx,my)):
            WIN.blit(DARK_TOWERT, (x, y))
            if click:
                main()
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                pygame.quit()

            if event.type==pygame.MOUSEBUTTONDOWN:
                if event.button==1:
                    click=True
        
        pygame.display.update()

这可行,但问题是, blit 将图片保留在那里,并且我希望图片在鼠标不再位于图片上后消失。

回答1

如果您将 blit(绘制)到 WIN 表面,它将一直停留在那里,直到在其上绘制了某些东西,或者清除了表面。

pygame.display.update() 之后更新附加到您的代码后清除显示

WIN.fill(0)

这将用颜色填充窗口表面,如果指定 0 而不是 rgb value,则显示将填充黑色。

相似文章

python - 为什么我的 pygame 代码中没有生命计数?

所以我正在做一个项目,我必须制作一个游戏,给用户三个生命,每次光束矩形与玩家的矩形碰撞时,它都会减去一个生命并将它们放在原始位置。当生命==0时:将显示死亡屏幕。但是由于某种原因,即使我确保每次玩家r...

最新文章