Python sys.exit()和pygame.quit()以及os.\u退出(0)无法关闭pygame显示窗口
sys.exit()和pygame.quit()通常适用于我。我目前正在试验类和类属性。我猜screen对象并没有因为它是如何在类中创建的而被关闭 print语句没有为我打印-我检查了它是否正在注册退出事件,并且它是 请帮忙Python sys.exit()和pygame.quit()以及os.\u退出(0)无法关闭pygame显示窗口,python,pygame,Python,Pygame,sys.exit()和pygame.quit()通常适用于我。我目前正在试验类和类属性。我猜screen对象并没有因为它是如何在类中创建的而被关闭 print语句没有为我打印-我检查了它是否正在注册退出事件,并且它是 请帮忙 import pygame import os, sys, random, math class Game(): active = True cell_size = 20 max_cell_number = 30 welcome =
import pygame
import os, sys, random, math
class Game():
active = True
cell_size = 20
max_cell_number = 30
welcome = True
def __init__(self):
pygame.init()
self.screen = pygame.display.set_mode(size = (Game.cell_size*Game.max_cell_number, Game.cell_size*Game.max_cell_number))
self.clock = pygame.time.Clock()
class Background():
def __init__(self):
image1 = pygame.image.load('/assets/image1.png').convert()
image2 = pygame.image.load('/assets/image2.png').convert()
image3 = pygame.image.load('/assets/image3.png').convert()
image4 = pygame.image.load('/assets/image4.png').convert()
image5 = pygame.image.load('/assets/image5.png').convert()
self.images = [image1, image2, image3, image4, image5]
def generate_background(self):
image_number = random.randint(0,4)
image = self.images[image_number]
return image
class Cards():
def __init__(self):
pass
def show(self, welcome):
if welcome:
self.WelcomeScreen()
else:
self.EndScreen()
class WelcomeScreen():
def __init__(self):
image = self.Background()
image = image.generate_background
self.screen.blit(image,(0,0))
game = Game()
while True:
if game.active:
for event in pygame.event.get():
if event == pygame.QUIT:
print("quit")
pygame.quit()
sys.exit(0)
else:
for event in pygame.event.get():
if event == pygame.QUIT:
pygame.quit()
sys.exit()
game.Cards.show(Game.welcome)
game.clock.tick(120)
pygame.display.update()
您需要将事件类型与pygame.QUIT
进行比较,因为原始事件始终只是事件
类的一个实例
已更正而循环:
while True:
if game.active:
for event in pygame.event.get():
if event.type == pygame.QUIT:
print("quit")
pygame.quit()
sys.exit(0)
else:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
game.Cards.show(Game.welcome)
game.clock.tick(120)
pygame.display.update()
如果event==pygame.QUIT:
->如果event.type==pygame.QUIT:
那么pygame.event.get()返回事件字典,您可以使用.type和.key调用type、key