Skip to main content

How to make image disappear or how to hide image from the screen? [duplicate]

I'm making my first pygame game, Plane Delivery game. I'm stuck at the menu. I created menu with my custom background image. Also, I created START button which is used to start the game. When player clicks the START button, I want to hide main menu background, and show the game's background image, world map. Thank you for help! There's code:

import pygame 
pygame.init()


window = pygame.display.set_mode((1920, 1080))
pygame.display.set_caption('Plane Delivery')
POZADINA = (254, 0, 60) # BOJA POZADINE

window.fill(POZADINA)

clock = pygame.time.Clock()
    
menu_img = pygame.image.load('Plane_Delivery2.jpg')
menu_img = pygame.transform.scale(menu_img, (1920, 1080))

bg_img = pygame.image.load('background.jpg')
bg_img = pygame.transform.scale(bg_img,(1920, 1080))
plane_sprite = pygame.image.load('avion3.png')
x2 = 960
y2 = 540

# -- Main Menu -- 

#button class
class Button():
  def __init__(self, x, y, image, scale):
    width = image.get_width()
    height = image.get_height()
    self.image = pygame.transform.scale(image, (int(width * scale), int(height * scale)))
    self.rect = self.image.get_rect()
    self.rect.topleft = (x, y)
    self.clicked = False

  def draw(self, surface):
    action = False
    #get mouse position
    pos = pygame.mouse.get_pos()

    #check mouseover and clicked conditions
    if self.rect.collidepoint(pos):
      if pygame.mouse.get_pressed()[0] == 1 and self.clicked == False:
        self.clicked = True
        action = True

    if pygame.mouse.get_pressed()[0] == 0:
      self.clicked = False

    #draw button on screen
    surface.blit(self.image, (self.rect.x, self.rect.y))

    return action

start_img = pygame.image.load('start2.png').convert_alpha()
exit_img = pygame.image.load('exit2.png').convert_alpha()

start_button = Button(30, 400, start_img, 0.8)
exit_button = Button(200, 360, exit_img, 0.4)
run = True

while run:
  clock.tick(40)
  window.blit(menu_img, (0, 0))
  if start_button.draw(window):
    
    window.fill((255, 255, 0))
    window.blit(bg_img, (0, 0))
    pygame.display.flip()
    

    window.blit(plane_sprite, (x2, y2))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
          run = False
        while 1:
          for event in pygame.event.get():
            if event.type == pygame.KEYDOWN:
              if event.key == pygame.K_w:
                y2 += 20
              if event.key == pygame.K_s:
                y2 -= 20
              if event.key == pygame.K_a:
                x2 -= 20
              if event.key == pygame.K_d:
                x2 += 20
    for event in pygame.event.get():
      if event.type == pygame.QUIT:
        run = False
  if exit_button.draw(window):
    pygame.quit()

  for event in pygame.event.get():
    if event.type == pygame.QUIT:
      run = False
  pygame.display.update()


Thank you for help! :D


source https://stackoverflow.com/questions/74248118/how-to-make-image-disappear-or-how-to-hide-image-from-the-screen

Comments