Sva Sva
Sva Sva

Reputation: 41

how to make image/images disappear in pygame?

Hi i want to ask a question which has been answered a lot of times on this site but i never found an appreciable answer.How to remove the images in Pygame if there is already a background image in game window. In most of the answers,they say to use screen.fill(color) but it makes the area black.It works fine if there is no background image but with background image,it looks odd when only a certain region is colored black.How can i get rid of it?Is there an alternative way to remove the image in this particular situation.By the way I'm not adding any specific code here because i deal with this issue a lot of time while building games.

Upvotes: 1

Views: 2227

Answers (1)

Rabbid76
Rabbid76

Reputation: 210878

You can not remove an image. You have to redraw the entire scene (including the background) in the application loop. Note the images are just a buch of pixel drawn on top of the background. The background "under" the images is overwritten and the imformation is lost:

The main application loop has to:

A minimum application is

import pygame

pygame.init()

window = pygame.display.set_mode((500, 500))
clock = pygame.time.Clock()

# main application loop
run = True
while run:
    clock.tick(60)

    # event loop
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    # update game states and move objects
    # [...]

    # clear the display
    window.fill(0) # or `blit` the back ground image instead

    # draw the scene - draw all the objects
    # [...]

    # update the display
    pygame.display.flip()

Upvotes: 2

Related Questions