出于某种原因,当我更改为intro = false时,我无法退出此循环,任何人都可以帮助我如何退出此if语句。这是我的菜单屏幕,一旦我点击“新游戏”,我希望它退出game_intro功能。
这是我定义game_intro的地方:
def game_intro():
intro = True
if intro == True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
window.fill(superlightgrey)
fontvertical = pygame.font.SysFont("comicsansms", 100)
text = fontvertical.render("Connect 4", True, skyblue)
word = (10, 1)
window.blit(text,word)
ButtonIntro("New Game", 340, 140, 200, 50, superlightgrey, superlightgrey, "Play")
这是我创建按钮功能的地方:
def ButtonIntro(msg, x, y, w, h, ic, ac, action=None):
mouse = pygame.mouse.get_pos()
click = pygame.mouse.get_pressed()
if x+w > mouse[0] > x and y+h > mouse[1] > y:
pygame.draw.rect(window, ac, (x, y, w, h))
if click[0] == 1 and action != None:
pygame.draw.rect(window, lightgrey, (x, y, w, h))
if action == "Play":
intro = False
##WHAT DO I NEED HERE TO EXIT LOOP
这就是我调用函数的地方:
while intro == True:
game_intro()
print("loopexited")
答案 0 :(得分:0)
intro
变量位于函数内部,当您在函数内部创建变量时,它不会连接到函数外部的任何内容。
intro = True
def myfunction():
intro = False
myfunction()
print(intro)
此代码打印:
True
intro
中的myfunction
变量被创建为与外部变量完全独立的变量。
看起来您在intro
函数中可能还有另一个game_intro
变量。
您可以使用global
关键字解决此问题,但最好不要尝试找到一种不同的方法来构建代码(global
被视为不良做法。)