Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sys.exit()和pygame.quit()以及os.\u退出(0)无法关闭pygame显示窗口_Python_Pygame - Fatal编程技术网

Python sys.exit()和pygame.quit()以及os.\u退出(0)无法关闭pygame显示窗口

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 =

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 = 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