pygame 创建一张星星图,运行后只有黑屏,然后就未响应死了,而且电脑还会发热

因为一运行就死,没有办法看到错误,所以问下是哪里出错了?


import random,pygame
class Star():
    def __init__(self):
        self.rect = pygame.Rect(0,0,9,9)
        self.color = "white"
    def draw_star(self):
        pygame.draw.rect(screen,self.color,self.rect)

pygame.init()  # 初始化背景
mode = w,h = 800,600
screen = pygame.display.set_mode(mode)
pygame.display.set_caption("stars")
bg_color = "black"

for i in range(50):
    star = Star()
    star.rect.x = random.randint(0,w-5)
    star.rect.y = random.randint(0,h-5)
    star.draw_star()

while True:
    screen.fill(bg_color)
    pygame.display.flip()

你得有异步式响应。

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            exit(0)
            
    screen.fill(bg_color)
    
    for i in range(20):
        star = Star()
        star.rect.x = random.randint(0,w-5)
        star.rect.y = random.randint(0,h-5)
        star.draw_star()   
    pygame.display.update()