Python之爱心漂浮代码实现

本文介绍了如何使用Python的Turtle库创建一个简单的爱心流星雨动画,通过随机位置、颜色和移动路径,展示了一个基础的漂浮爱心实例。
摘要由CSDN通过智能技术生成

Python之流星雨代码实现


下面是一个简单的使用 Python 的 爱心漂浮。这个示例只是一个简单的版本,没有很多高级功能,但它可以作为一个起点,你可以在此基础上添加更多功能。

import turtle as tu
import random as ra
import math

tu.setup(1.0, 1.0)
tu.screensize(1.0, 1.0)
t = tu.Pen()
t.ht()
colors = ['pink']

class Heart():    #每个爱心(爱心类)

    def __init__(self):
        self.r = ra.randint(10,15)        #爱心的半径
        self.x = ra.randint(-1000,1000)   #爱心的横坐标
        self.y = ra.randint(-500,500)     #爱心的纵坐标
        self.f = ra.uniform(-3.14,3.14)   #爱心左右移动呈正弦函数
        self.speed = ra.randint(5,10)     #爱心移动速度
        self.color = ra.choice(colors)    #爱心的颜色
        self.outline = 1                  #爱心的外框大小(可不要)

    def move(self):                       #爱心移动函数
        if self.y <= 500:                 #当爱心还在画布中时
            self.y += self.speed          #设置上下移动速度
            self.x += self.speed * math.sin(self.f)    #设置左右移动速度
            self.f += 0.1                 #可以理解成标志,改变左右移动的方向
        else:                             #当爱心漂出了画布时,重新生成一个爱心
            self.r = ra.randint(10,15)        
            self.x = ra.randint(-1000,1000)
            self.y = -500
            self.f = ra.uniform(-3.14,3.14)
            self.speed = ra.randint(5,10)
            self.color = ra.choice(colors)
            self.outline = 1

    def draw(self):       #画爱心函数,就是用turtle画爱心
        t.pensize(self.outline)
        t.penup()
        t.color(self.color)
        t.goto(self.x, self.y)
        t.pendown()
        t.begin_fill()
        t.fillcolor('pink')
        t.setheading(120)
        t.circle(self.r, 195)
        t.fd(self.r * 2.4)
        t.lt(90)
        t.fd(self.r * 2.4)
        t.circle(self.r, 195)
        t.end_fill()

Hearts = []            #用列表保存所有爱心

for i in range(100):   
    Hearts.append(Heart())

tu.bgcolor('black')

while True:           #开始漂浮
    tu.tracer(0)     
    t.clear()
    for i in range(50):    #在画布中设置50个漂浮的爱心
        Hearts[i].move()
        Hearts[i].draw()
    tu.update()

tu.mainloop()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值