Кнопка в pygame
Хочу сделать кнопку - изображения которая будет появляться когда два других изображения соприкасаются
Проблема в том если я использую get_rect то на кнопку можно будет нажимать даже если изображение еще не появилось. Как сделать так чтобы в области где должно появится изображение ничего не работало до тех пор пока изображения не появится
import pygame
def push(but):
keys = pygame.mouse.get_pressed()
mouse = pygame.mouse.get_pos()
if but.x < mouse[0] < but.x + but.w:
if but.y < mouse[1] < but.y + but.h:
if keys[0] == 1:
return True
pygame.init()
bg = pygame.image.load ("bg.png")
plus = pygame.image.load ("levis.png")
ho = pygame.image.load ("ho.png")
lef = pygame.image.load("levo.png")
righ = pygame.image.load("pr.png")
playl = [ pygame.image.load("1l.png"),
pygame.image.load("2l.png"),
pygame.image.load("3l.png"),
pygame.image.load("4l.png")]
playr = [ pygame.image.load("1.png"),
pygame.image.load("2.png"),
pygame.image.load("3.png"),
pygame.image.load("4.png")]
width, height = 720, 1500
display = pygame.display.set_mode((width, height))
Red = (255, 0, 0)
left = pygame.Rect((50, 1200), (150, 100))
right = pygame.Rect((500, 1200), (150, 100))
x = width // 2
y = height // 2
speed = 6
l = 0
while True:
for ev in pygame.event.get():
if ev.type == pygame.QUIT:
pygame.quit()
exit()
if l == 3:
l = 0
else:
l += 1
display.fill((120, 120, 120))
display.blit(bg, (0, 0))
display.blit(ho, (100, 750))
display.blit(playl[0], (x, y))
play_rect = playl[0].get_rect(topleft=(x, y))
ho_rect = ho.get_rect(topleft=(100, 750))
if play_rect.colliderect(ho_rect):
display.blit(plus, (550, 1100))
if push(left):
display.blit(ho, (100, 750))
display.blit(playl[l], (x, y))
x -= speed
elif push(right):
display.blit(ho, (100, 750))
display.blit(playr[l], (x, y))
x += speed
if x - 50 < 0:
x = 50
elif x + 50 > 720:
x = 720 - 50
display.blit(lef, (50, 1200))
display.blit(righ, (500, 1200))
pygame.display.update()