У меня есть программа, основанная на pygame, которая создает экран, и каждый раз, когда вы нажимаете клавишу «Пробел» или «Enter», он печатает одну из строк в списке. Также у него есть игровое меню, которое вы можете открыть, нажав «Esc», но по какой-то причине, которое я не могу понять, когда нажимаю «Esc», x суммирует и печатает строки, когда это не предполагается. Может ли кто-нибудь помочь мне решить эту проблему?
Это мой код:
import pygame
import sys
pygame.init()
screenSize = (1000, 600)
fullscreen = 0
gameDisplay = pygame.display.set_mode(screenSize, fullscreen)
clock = pygame.time.Clock()
black = (0, 0, 0)
purple = (174, 55, 174)
strings = ['string1', 'string2', 'string3', 'string4', 'string5']
def scenemanager(x=0):
gameDisplay.fill(black)
while x <= len(strings):
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit(), sys.exit(), quit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
ingame_menu()
if event.key == pygame.K_SPACE or pygame.K_KP_ENTER:
if x <= len(strings)-1:
print(strings[x])
gameDisplay.fill(black)
x += 1
pygame.display.update()
clock.tick(60)
def ingame_menu():
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit(), sys.exit(), quit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
return False
gameDisplay.fill(purple)
pygame.display.update()
clock.tick(60)
scenemanager()