可以写python的流星雨代码吗
时间: 2023-05-26 07:03:58 浏览: 77
以下是Python实现流星雨的代码:
```
import random
import time
class Star:
def __init__(self, x, y, speed):
self.x = x
self.y = y
self.speed = speed
def move(self):
self.y += self.speed
if self.y > 600:
self.y = random.randint(-100, 0)
def draw(self, canvas):
canvas.create_oval(self.x-1, self.y-1, self.x+1, self.y+1, fill='white')
class MeteorShower:
def __init__(self, num_stars):
self.stars = []
for i in range(num_stars):
x = random.randint(0, 800)
y = random.randint(-600, 0)
speed = random.randint(2, 10)
star = Star(x, y, speed)
self.stars.append(star)
def move_stars(self):
for star in self.stars:
star.move()
def draw_stars(self, canvas):
for star in self.stars:
star.draw(canvas)
def main():
canvas_width = 800
canvas_height = 600
num_stars = 100
meteors = MeteorShower(num_stars)
from tkinter import Tk, Canvas
root = Tk()
canvas = Canvas(root, width=canvas_width, height=canvas_height)
canvas.pack()
while True:
canvas.delete('all')
meteors.move_stars()
meteors.draw_stars(canvas)
root.update()
time.sleep(0.02)
if __name__ == '__main__':
main()
```
这个代码使用了Python自带的`tkinter`模块来实现窗口和画布,并使用了随机数来生成流星的位置和速度。通过不断更新画布上星星的位置和绘制,实现流星雨的效果。