我需要你的帮助,我想用 python 模块制作一个迷你 python 游戏,到目前为止一切都很顺利,我的程序打开正常,播放一些音乐但我无法退出它这个,我不明白(我是Python的初学者)。这是我的代码。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pygame # importation bibliotheque pygame
from pygame.locals import * # importation de tout les modules de pygame
pygame.init() # initialisation du module
fen = pygame.display.set_mode((800, 600)) # variable fenetre stockant les valeurs ouvrant cette fenetre en 800 sur 600
pygame.mixer.music.load(r"C:\Users\namik\Music\02 Chun Li.mp3") # outil de pygame chargeant ma musique
pygame.mixer.music.play() # lance musique au démarrage du programme
pygame.display.set_caption('clic souris')
running = True # attribution de la valeur Vrai a running
while True: # tant que vrai
for event in pygame.event.get():
if event.type == QUIT:
running = False
pygame.display.update()
pygame.quit()
您将运行设置为
False
,但循环仍将运行,因为您已运行它 while True
。相反,你想要:
#...
running = True
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
#...
因此当运行设置为False时它将终止。
你犯了许多初学者在学习 pygame 时常犯的错误。看来你已经把自己陷入了一个循环之中!你的 while 循环将会运行,除非它设置的条件变为 False,但是如果你把
True
放在它旁边,它就会一直运行!因此您将无法退出您的程序。但是,如果您希望 while 循环在 running=False 时退出,请将 True
替换为 running
。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pygame # importation bibliotheque pygame
from pygame.locals import * # importation de tout les modules de pygame
pygame.init() # initialisation du module
fen = pygame.display.set_mode((800, 600)) # variable fenetre stockant les valeurs ouvrant cette fenetre en 800 sur 600
pygame.mixer.music.load(r"C:\Users\namik\Music\02 Chun Li.mp3") # outil de pygame chargeant ma musique
pygame.mixer.music.play() # lance musique au démarrage du programme
pygame.display.set_caption('clic souris')
running = True # attribution de la valeur Vrai a running
while running: # tant que vrai
for event in pygame.event.get():
if event.type == QUIT:
running = False
pygame.display.update()
pygame.quit()
这是有效的,因为 while 循环在条件变为 false 时停止,因此通过将
running
设置为条件,每当 running
变为 false 时,while 循环就会停止。
希望我说的有帮助,谢谢!