I am trying to exit the program when the escape key is pressed. I am having some trouble doing that.
When I take out the door() line it works;
while True:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
print("key pressed")
if event.key == pygame.K_ESCAPE:
print("key pressed")
pygame.quit()
sys.exit()
#door()
This is the command prompt readout
C:\Users\Me\Documents\Fan game>python testing_file.py
pygame 2.0.1 (SDL 2.0.14, Python 3.9.5)
Hello from the pygame community. https://www.pygame.org/contribute.html
key pressed
key pressed
C:\Users\Me\Documents\Fan game>
But as soon as I add that line back in, it stops working.
My door function;
def door():
global var_door
image_door_1 = pygame.image.load(r'textures\door\frame_1.png')
image_door_2 = pygame.image.load(r'textures\door\frame_2.png')
image_door_3 = pygame.image.load(r'textures\door\frame_3.png')
image_door_4 = pygame.image.load(r'textures\door\frame_4.png')
image_door_5 = pygame.image.load(r'textures\door\frame_5.png')
image_door_6 = pygame.image.load(r'textures\door\frame_6.png')
image_door_1_size = image_door_1.get_rect().size
image_door_2_size = image_door_2.get_rect().size
image_door_3_size = image_door_3.get_rect().size
image_door_4_size = image_door_4.get_rect().size
image_door_5_size = image_door_5.get_rect().size
image_door_6_size = image_door_6.get_rect().size
centered_image_door_1 = [(display_size[0] - image_door_1_size[0])/2, (display_size[1] - image_door_1_size[1])/2]
centered_image_door_2 = [(display_size[0] - image_door_2_size[0])/2, (display_size[1] - image_door_2_size[1])/2]
centered_image_door_3 = [(display_size[0] - image_door_3_size[0])/2, (display_size[1] - image_door_3_size[1])/2]
centered_image_door_4 = [(display_size[0] - image_door_4_size[0])/2, (display_size[1] - image_door_4_size[1])/2]
centered_image_door_5 = [(display_size[0] - image_door_5_size[0])/2, (display_size[1] - image_door_5_size[1])/2]
centered_image_door_6 = [(display_size[0] - image_door_6_size[0])/2, (display_size[1] - image_door_6_size[1])/2]
mouse_down = False
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
elif event.type == MOUSEBUTTONDOWN:
mouse_down = True
x, y = pygame.mouse.get_pos()
if 0 < x < 253 and 0 < y < 226:
if mouse_down:
if var_door == 0:
screen.blit(image_door_1, centered_image_door_1)
pygame.display.update()
time.sleep(0.01)
screen.blit(image_door_2, centered_image_door_2)
pygame.display.update()
time.sleep(0.01)
screen.blit(image_door_3, centered_image_door_3)
pygame.display.update()
time.sleep(0.01)
screen.blit(image_door_4, centered_image_door_4)
pygame.display.update()
time.sleep(0.01)
screen.blit(image_door_5, centered_image_door_5)
pygame.display.update()
time.sleep(0.01)
screen.blit(image_door_6, centered_image_door_6)
pygame.display.update()
var_door = 1
else:
screen.blit(image_door_6, centered_image_door_6)
pygame.display.update()
time.sleep(0.01)
screen.blit(image_door_5, centered_image_door_5)
pygame.display.update()
time.sleep(0.01)
screen.blit(image_door_4, centered_image_door_4)
pygame.display.update()
time.sleep(0.01)
screen.blit(image_door_3, centered_image_door_3)
pygame.display.update()
time.sleep(0.01)
screen.blit(image_door_2, centered_image_door_2)
pygame.display.update()
time.sleep(0.01)
screen.blit(image_door_1, centered_image_door_1)
pygame.display.update()
var_door = 0
I do not understand why it does not work. I tried rearranging the order that the while loop checks but even that doesn't work. My guess is for some reason it never checks if the escape key is pressed and its getting stuck on the door function, but the door function doesn't have any loops in it.