流星

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()

 

posted @ 2023-12-02 16:52  最后一个还有我  阅读(22)  评论(0)    收藏  举报