import turtle
import random
turtle.setup(600, 600)
turtle.bgcolor('black')
Particle
:初始化粒子的形状、位置、速度等属性。
move()
方法控制粒子的运动,包括旋转、前进、更新位置等。
定义绘制爱心的函数 draw_heart()
:
particles
。 draw_heart()
函数绘制爱心形状。 循环生成粒子对象,并添加到 particles
列表中:
particles
列表中:for i in range(100):
particles.append(Particle())
while True:
for p in particles:
p.move()
turtle.update()
9.最后调用 turtle.done()
来保持窗口显示状态。
注意:这段代码会一直循环运行,直到手动关闭窗口。每次运行时,会生成100个随机粒子,并通过 move()
方法实现粒子的运动效果
所有代码如下:
import turtle
import random
# 设置画布大小和背景颜色
turtle.setup(600, 600)
turtle.bgcolor('black')
# 定义粒子的类
class Particle(turtle.Turtle):
def __init__(self):
turtle.Turtle.__init__(self, shape='circle', visible=False)
self.pu()
self.speed(0)
self.setundobuffer(None)
self.shapesize(random.uniform(0.1, 0.5))
self.fillcolor(random.choice(['red', 'pink', 'white']))
self.goto(random.randint(-250, 250), random.randint(-250, 250))
self.setheading(random.randint(0, 360))
self.showturtle()
self.vx = random.uniform(-2, 2)
self.vy = random.uniform(-2, 2)
self.life = random.randint(20, 50)
# 粒子运动的方法
def move(self):
self.lt(random.randint(-10, 10))
self.fd(2)
self.vx *= 8.4
self.vy *= 4.1
self.setx(self.xcor() + self.vx)
self.sety(self.ycor() + self.vy)
self.life -= 1
if self.life <= 0:
self.clear()
self.hideturtle()
# 定义绘制爱心的函数
def draw_heart():
turtle.color('red', 'pink')
turtle.begin_fill()
turtle.lt(45)
turtle.fd(200)
turtle.circle(100, 180)
turtle.rt(90)
turtle.circle(100, 180)
turtle.fd(200)
turtle.end_fill()
# 初始化粒子列表
particles = []
# 绘制粒子组成的爱心
draw_heart()
# 循环生成粒子
for i in range(100):
particles.append(Particle())
# 粒子运动循环
while True:
for p in particles:
p.move()
turtle.update()
turtle.done()
创作不易点个赞和关注,持续为您更新优质作品