序号 | 直达链接 |
---|---|
Tkinter | |
1 | Python李峋同款可写字版跳动的爱心 |
2 | Python跳动的双爱心 |
3 | Python蓝色跳动的爱心 |
4 | Python动漫烟花 |
5 | Python粒子烟花 |
Turtle | |
1 | Python满屏飘字 |
2 | Python蓝色流星雨 |
3 | Python金色流星雨 |
4 | Python漂浮爱心 |
5 | Python爱心光波① |
6 | Python爱心光波② |
7 | Python满天繁星 |
8 | Python五彩气球 |
9 | Python白色飘雪 |
10 | Python七彩花朵 |
11 | Python 3D星空 |
12 | Python大雪纷飞 |
13 | Python一闪一闪亮星星 |
14 | Python爱心泡泡 |
15 | Python爱心射线 |
16 | Python圣诞礼物 |
17 | Python礼物圣诞树 |
18 | Python浪漫星空 |
19 | Python飞舞蝙蝠 |
20 | Python万圣礼物 |
21 | Python蓝色飘雪 |
Pygame | |
1 | Python跨年烟花 |
2 | Python炫酷烟花 |
3 | Python黑客帝国字母雨 |
敬请期待…… |
Python实现满屏飘字表白代码的完整代码。
图形界面:使用 Python 的 tkinter
库创建了一个图形界面窗口,该窗口包含了一个简单的表白界面。界面中央有一个按钮用于同意,另一个按钮用于拒绝,且还会弹出相应的提示信息框。
动画效果:
turtle
库生成多个随机位置、颜色、方向和移动速度的文本。文本包含了一些表白语句,它们在屏幕上不断浮动、移动,创造了一种浪漫的表白效果。turtle
绘制多个彩球,它们从屏幕顶部逐渐向下移动,创造了一种动态的视觉效果。随机性:文本和彩球的位置、颜色、速度等都包含随机性,使得每次运行时呈现不同的效果。文本会在屏幕上漂浮,并且每个文本和每个彩球都有独特的属性(如位置、颜色、速度等)。
用户交互:用户通过点击“好哦”或“不要”按钮来决定程序是否继续。如果用户点击“好哦”,则会退出当前界面并开始执行表白动画。如果点击“不要”,则会弹出提示框告知用户还有机会。
动画控制:
turtle
的 tracer
和 update
方法控制动画的更新频率,使动画顺畅运行。跨平台兼容性:使用 Python 标准库 tkinter
和 turtle
,这两者在多个操作系统中都可以运行,确保了该程序的跨平台兼容性。
用户体验:
import turtle as tu
import random as ra
import tkinter as tk
import math
def Main():
tu.setup(1.0, 1.0)
tu.screensize(1.0, 1.0) #设置画布大小
tu.bgcolor('black') #设置画布颜色
tu.title("❤")
t = tu.Pen()
t.ht() #隐藏画笔
words = ["我爱你",
"I Love You!",
"永远爱你",
"你是我年少的欢喜",
"一生一世一双人",
"余生我陪你走",
"陪你到来生",
"春风十里不如你",
"三生有幸来日方长",
"夜很长幸有你",
"爱你的全部",
"踏过八荒四海只为你",
"愿得一人心",
"众里寻他千百度",
"顶峰相见",
"等你下课",
"往后余生",
"Missing You!",
"做我女朋友好么",
"你已经在我的未来里了",
"陪你到世界之巅",
"白头偕老",
"我喜欢你",
"好想好想你",
"想你想你想你",
"今夜月色真美",
"你是我的唯一"
]
class Love(): #文案类
def __init__(self):
self.x = ra.randint(-1000,1000) #文案的横坐标
self.y = ra.randint(-500,500) #文案的纵坐标
self.f = ra.uniform(-3,3) #文案左右移动
self.speed = ra.uniform(2,5) #文案移动速度
self.word = ra.choice(words) # 文案
self.color = "#%02x%02x%02x" % (ra.randint(0,255),ra.randint(0,255),ra.randint(0,255)) #文案的颜色
def draw(self): #写每个文案
t.penup() #提笔
t.goto(self.x,self.y) #随机位置
t.pendown() #落笔
t.color(self.color) #文案颜色
t.write(self.word, align="center", font=("Comic Sans MS", 24, "bold"))
def move(self): #文案移动函数
if self.y <= 500: #当文案还在画布中时
self.y += self.speed #设置上下移动速度
self.x -= self.speed * math.sin(self.f) #设置左右移动速度
else: #当文案漂出了画布时,重新生成一个文案
self.x = ra.randint(-1000,1000)
self.y = -500
self.f = ra.uniform(-3.14, 3.14) # 文案左右移动呈正弦函数
self.speed = ra.uniform(2, 5) # 文案移动速度
self.word = ra.choice(words) # 文案
self.color = "#%02x%02x%02x" % (ra.randint(0, 255), ra.randint(0, 255), ra.randint(0, 255)) # 文案的颜色
……
这段代码通过Python的turtle
、random
、tkinter
以及math
库,构建了一个简单但富有创意的动画展示,结合了GUI界面和动态画面效果。程序的主要功能是通过“好哦”按钮进入一个画布,展示一系列漂浮的表白文案和五颜六色的彩球动画,创造出一个浪漫、梦幻的互动体验。下面我们将逐步分析每个模块的功能及实现。
程序首先通过tkinter
库创建了一个GUI界面,显示一个简洁的窗口,窗口中包含一个文本标签、两个按钮以及一个绑定的退出事件。GUI界面代码位于root
对象的创建和配置中:
root = tk.Tk()
root.title('❤')
root.resizable(0, 0) # 禁止窗口调整大小
screenwidth = root.winfo_screenwidth()
screenheight = root.winfo_screenheight()
widths = 300
heights = 100
x = (screenwidth - widths) / 2
y = (screenheight - heights) / 2 - 66
root.geometry('%dx%d+%d+%d' % (widths, heights, x, y)) # 设置窗口居中
tk.Tk()
创建了一个窗口对象,title('❤')
设置窗口的标题为心形符号,resizable(0, 0)
禁用了窗口的大小调整功能。screenwidth
和 screenheight
获取了屏幕的宽度和高度,用于确定窗口在屏幕中的位置。root.geometry()
函数根据屏幕大小调整窗口位置,使其居中显示。界面中还包含了两个按钮和一个文本标签:
tk.Label(root, text='亲爱的,做我女朋友好吗?', width=37, font=('宋体', 12)).place(x=0, y=10)
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)
tk.Label()
用于展示一段表白文本“亲爱的,做我女朋友好吗?”。tk.Button()
创建了两个按钮,分别绑定了OK
和NO
函数。place(x, y)
函数则是指定按钮的位置。OK()
函数在点击“好哦”按钮时执行,关闭当前的GUI窗口,并调用Main()
函数,开始绘制飘字和彩球动画。NO()
函数则在点击“不要”按钮时执行,弹出一个警告框提醒用户“再给你一次机会!”。closeWindow()
函数是绑定在窗口关闭事件上的,当用户尝试关闭窗口时,弹出一个警告框,提醒用户“逃避是没有用的哦”。Main()
函数及动画实现当点击“好哦”按钮后,Main()
函数被调用,开始进入动画的展示。Main()
函数通过turtle
库创建一个画布和画笔对象,并在画布上进行动态绘制。代码中的关键部分如下:
3.1. 初始化
tu.setup(1.0, 1.0) # 设置画布大小为屏幕大小
tu.screensize(1.0, 1.0)
tu.bgcolor('black') # 设置背景色为黑色
tu.title("❤") # 设置窗口标题为“❤”
t = tu.Pen() # 创建一个画笔对象
t.ht() # 隐藏画笔
tu.setup()
和tu.screensize()
使得画布的大小充满整个屏幕,tu.bgcolor('black')
设置背景色为黑色,tu.title("❤")
则将窗口标题设置为一个心形符号。通过tu.Pen()
创建了一个画笔对象t
,并使用t.ht()
隐藏画笔,使得绘制过程中看不到画笔本身。
3.2. 文案类 Love
Love
类的作用是创建飘动的文案,包括表白句子和随机的颜色与位置。文案的生成通过构造函数和draw()
、move()
方法实现:
class Love:
def __init__(self):
self.x = ra.randint(-1000, 1000)
self.y = ra.randint(-500, 500)
self.f = ra.uniform(-3, 3) # 随机的偏移角度,控制左右的飘动
self.speed = ra.uniform(2, 5) # 随机速度
self.word = ra.choice(words) # 随机从预定义的表白文案中选择
self.color = "#%02x%02x%02x" % (ra.randint(0, 255), ra.randint(0, 255), ra.randint(0, 255)) # 随机颜色
self.x
和 self.y
确定了文案的起始位置,self.f
为偏移角度,self.speed
控制文案的上下速度,self.word
随机选择文案文本,self.color
是随机生成的颜色值。draw()
方法负责绘制文案,move()
方法则控制文案的移动,当文案移出画布时,重新生成新的文案。
3.3. 彩球类 Ball
Ball
类负责创建彩球,彩球也会随机移动并重新生成。
draw()
方法负责绘制彩球,move()
方法控制彩球的上下移动,当彩球移出画布时,重新生成新的彩球。
在这个主循环中,tu.tracer(0)
关闭了动画的自动更新,t.clear()
清除了画布上的所有内容,然后遍历了保存文案和彩球的列表Loves
,对每个元素调用move()
和draw()
方法。tu.update()
则是刷新画布。
该程序通过tkinter
和turtle
库实现了一个富有创意和互动性的动画效果,结合了表白文案和动态彩球,创造了一个浪漫的场景。通过随机生成文案和彩球的位置、颜色、
我是一只有趣的兔子,感谢你的喜欢!