import pygame import random import sys # 初始化pygame pygame.init() # 定义常量 SCREEN_WIDTH = 800 SCREEN_HEIGHT = 600 NUM_METEORS = 10 MAX_SPEED = 10 MAX_LENGTH = 80 MIN_LENGTH = 40 # 定义流星类 class Meteor: def __init__(self): self.x = random.randint(0, SCREEN_WIDTH) self.y = random.randint(-SCREEN_HEIGHT, 0) self.speed = random.randint(1, MAX_SPEED) self.length = random.randint(MIN_LENGTH, MAX_LENGTH) def draw(self, surface): pygame.draw.line(surface, (255, 255, 255), (self.x, self.y), (self.x - self.length, self.y + self.length)) def update(self): self.x -= self.speed self.y += self.speed if self.x < -self.length or self.y > SCREEN_HEIGHT + self.length: self.__init__() # 创建流星 meteors = [] for i in range(NUM_METEORS): meteors.append(Meteor()) # 创建屏幕 screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) # 主函数 def main(): # 循环调用更新和绘制流星的方法 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() screen.fill((0, 0, 0)) for meteor in meteors: meteor.update() meteor.draw(screen) pygame.display.update() # 调用主函数 if __name__ == '__main__': main() # 退出pygame pygame.quit() sys.exit()