好吧所以我有这个蛇游戏,我使用pygame非常基本,它的工作,但我创建了一个登录程序,我需要从游戏中解决,每当我尝试关闭游戏时,我得到的错误看起来像这就是当我尝试在python中使用pygame.exit()之后的sys.exit()时,我的登录程序关闭并运行一个空白的python窗口:
def playAgain(final):
gameDisplay.fill(WHITE)
username = 'luka'
message_to_screen("Game Over, press c to play again press q to quit", RED)
message_to_screen1(str(final),GREEN)
file = open('Scores.txt','a')
file.write( username + ' ' + 'Snake' + ' ' + str(final) + ' ' + '\n')
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_c:
score = 0
return True
if event.key == pygame.K_q:
pygame.quit()
break
def main():
while True:
final = gameLoop()
playAgain(final)
pygame.quit()
quit()
if __name__ == '__main__':
main()
蛇游戏
class GameHub(QtGui.QMainWindow,Ui_GameHub):
def __init__ (self):
QtGui.QMainWindow.__init__(self)
self.setupUi(self)
self.play_BlackJack.clicked.connect(self.BlackJack)
self.play_Snake.clicked.connect(self.Snake)
self.play_Scores.clicked.connect(self.HighScores)
self.play_Logout.clicked.connect(self.LogOut)
def Snake(self):
import snakeSummative
snake = snakeSummative.main()
登录def调用蛇游戏:
lastView.setTranslationZ(-10);
任何帮助都会让我感到非常难过,因为即使我打破了循环,我仍然会收到错误
答案 0 :(得分:0)
您正在退出pygame,然后再次尝试使用它:
if event.key == pygame.K_q:
pygame.quit()
break
退出pygame然后打破围绕它的while循环,然后在main()
中再次调用函数,但这次pygame已经退出。你需要打破外循环才能退出永远不会完成的游戏。
def playAgain(final):
gameDisplay.fill(WHITE)
username = 'luka'
message_to_screen("Game Over, press c to play again press q to quit", RED)
message_to_screen1(str(final),GREEN)
file = open('Scores.txt','a')
file.write( username + ' ' + 'Snake' + ' ' + str(final) + ' ' + '\n')
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
return False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_c:
score = 0
return True
if event.key == pygame.K_q:
return False
def main():
while True:
final = gameLoop()
if not playAgain(final): break
pygame.quit()
if __name__ == '__main__':
main()
我认为这是你想要的行为,希望这会有所帮助。
答案 1 :(得分:0)
我猜This可能会回答你的问题。
确保在开始游戏程序之前调用pygame.init()
。