好看的流星,快许愿欧!

最近和宝宝去了新西兰,那的流星虽然小,但是却不往外公布,所以,我尝试将它带回来带给大家。

记住,使用python才可以得到欧!!!

红色版本:

import turtle as tu
import random as ra
import tkinter as tk
import math
def Meteors():
    tu.setup(1.0, 1.0)
    tu.screensize(1.0, 1.0)    #设置画布大小
    tu.bgcolor('black')  #设置画布颜色
    tu.title("流星雨")
    t = tu.Pen()
    t.hideturtle()               #隐藏画笔
    # colors = ['skyblue', 'white', 'cyan', 'aqua']   #流星的颜色列表,蓝色
    colors = ['pink', 'lightpink', 'deeppink']  #粉色
    class Star():    #流星类
        def __init__(self):
            self.r = ra.randint(50,100)
            self.t = ra.randint(1,3)
            self.x = ra.randint(-2000,1000)   #流星的横坐标
            self.y = ra.randint(444, 999)  #流星的纵坐标
            self.speed = ra.randint(5,10)     #流星移动速度
            self.color = ra.choice(colors)    #流星的颜色
            self.outline = 1                 #流星的大小
        def star(self):                #画流星函数
            t.pensize(self.outline)    #流星的大小
            t.penup()                  #提笔
            t.goto(self.x,self.y)      #随机位置
            t.pendown()                #落笔
            t.color(self.color)
            t.begin_fill()
            t.fillcolor(self.color)
            t.setheading(-30)
            t.right(self.t)
            t.forward(self.r)
            t.left(self.t)
            t.circle(self.r*math.sin(math.radians(self.t)),180)
            t.left(self.t)
            t.forward(self.r)
            t.end_fill()
        def move(self):                    #流星移动函数
            if self.y >= -500:            #当流星还在画布中时
                self.y -= self.speed     #设置上下移动速度
                self.x += 2*self.speed   #设置左右移动速度
            else:
                self.r = ra.randint(50,100)
                self.t = ra.randint(1,3)
                self.x = ra.randint(-2000,1000)
                self.y = 444
                self.speed = ra.randint(5,10)
                self.color = ra.choice(colors)
                self.outline = 1
    Stars = []            #用列表保存所有流星
    for i in range(100):
        Stars.append(Star())
    while True:           #开始绘制
        tu.tracer(0)
        t.clear()
        for i in range(100):    #80个流星
            Stars[i].move()
            Stars[i].star()
        tu.update()
    tu.mainloop()

def love():
    root = tk.Tk()
    root.title('❤')
    root.resizable(0, 0)
    root.wm_attributes("-toolwindow", 1)
    screenwidth = root.winfo_screenwidth()
    screenheight = root.winfo_screenheight()
    widths = 300
    heights = 100
    x = (screenwidth - widths) / 2
    y = (screenheight - heights) / 2
    root.geometry('%dx%d+%d+%d' % (widths, heights, x, y))  # 设置在屏幕中居中显示
    tk.Label(root, text='亲爱的,做我女朋友好吗?', width=37, font=('宋体', 12)).place(x=0, y=10)


    def OK():  # 同意按钮
        root.destroy()
        # 同意后显示相应的效果
        Meteors()

    def NO():  # 拒绝按钮,拒绝不会退出,必须同意才可以退出哦~
        tk.messagebox.showwarning('❤', '再给你一次机会!')


    def closeWindow():
        tk.messagebox.showwarning('❤', '逃避是没有用的哦')


    tk.Button(root, text='好哦', width=5, height=1, command=OK).place(x=80, y=50)
    tk.Button(root, text='不要', width=5, height=1, command=NO).place(x=160, y=50)
    root.protocol('WM_DELETE_WINDOW', closeWindow)  # 绑定退出事件
    root.mainloop()

if __name__ == "__main__":
    love()


蓝色版本:

import turtle as tu
import random as ra

import math

tu.setup(1.0, 1.0)
tu.screensize(1.0, 1.0)    #设置画布大小
tu.bgcolor('black')        #设置画布颜色
t = tu.Pen()
t.ht()                     #隐藏画笔
colors = ['skyblue','white','cyan','aqua']   #流星的颜色列表

class Star():    #流星类

    def __init__(self):
        self.r = ra.randint(50,100)  
        self.t = ra.randint(1,3)
        self.x = ra.randint(-2000,1000)   #流星的横坐标
        self.y = ra.randint(0,500)        #流星的纵坐标
        self.speed = ra.randint(5,10)     #流星移动速度
        self.color = ra.choice(colors)    #流星的颜色
        self.outline = 1                  #流星的大小

    def star(self):                #画流星函数
        t.pensize(self.outline)    #流星的大小
        t.penup()                  #提笔
        t.goto(self.x,self.y)      #随机位置
        t.pendown()                #落笔
        t.color(self.color)        
        t.begin_fill()
        t.fillcolor(self.color)
        t.setheading(-30)
        t.right(self.t)
        t.forward(self.r)
        t.left(self.t)
        t.circle(self.r*math.sin(math.radians(self.t)),180)
        t.left(self.t)
        t.forward(self.r)
        t.end_fill()   

    def move(self):                   #流星移动函数
        if self.y >= -500:            #当流星还在画布中时
            self.y -= self.speed      #设置上下移动速度
            self.x += 2*self.speed    #设置左右移动速度
        else:                     
            self.r = ra.randint(50,100)
            self.t = ra.randint(1,3)
            self.x = ra.randint(-2000,1000)
            self.y = 500
            self.speed = ra.randint(5,10)
            self.color = ra.choice(colors)
            self.outline = 1

Stars = []            #用列表保存所有流星

for i in range(100):     
    Stars.append(Star())      

while True:           #开始绘制
    tu.tracer(0)
    t.clear()
    for i in range(100):    #80个流星
        Stars[i].move()
        Stars[i].star()
    tu.update()

tu.mainloop()
 

快把它送给你喜欢的男孩吧!!!

祝你们一起快乐,美满!!!

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值