首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

(二)Python-tkinter我用来做桌面应用,他用来撩妹(桌面上的弹幕)

Python-tkinter我用来做桌面应用,他用来撩妹

一、前言

现在看动漫,追电视剧,如果不开弹幕,感觉都失去了灵魂,不知道大家是不是也和我一样的感觉。于是突发奇想,弹幕可不可以让他显示在桌面上呢?在之前,我们已经可以在桌面上画上一堆可爱的爱心,为了让这些弹窗更加“惹人喜爱”,我们是不是可以将他们结合起来。

二、需求

我们需要实现弹幕,需要考虑好我们需要实现达到什么效果。

1、需要有弹幕滚动效果

2、有文字,有爱心

3、屏幕显示位置(上,中,下,全屏)

4、数量要多。

三、思路

已经有需求了,我们来整理一下思路:

1、实现一个窗口,窗口添加文字,或者爱心

2、让窗口滚动起来

3、控制弹幕出现的位置

4、控制弹幕的数量

要点:

1、考虑到弹窗位置多变,因此我们统一设置为区间,可控。

2、当弹幕滚动出屏幕之后,我们需要关闭弹幕或者重新开始滚动。

四、需求实现

第一步:实现窗口,添加文字或者爱心

在之前我们已经实现了一个弹窗的编写,还是比较简单的,这次,我们需要将爱心,和文字分开,方便后面的弹幕实现。

桃心弹幕

文字的话,因为是弹幕,数量肯定很多,因此我们用列表来管理我们需要的弹幕文字,这里我简单放入几个弹幕。并随机写入弹幕中。

文字弹幕

我们可以控制字体,以及字体的大小,按照需要设置。

使用这行代码,查看支持的字体。

做到这里,突然发现,我们的窗口如果依次调用函数的方式,

会发现,桃心出来了,文字一起出来了,但我们需要的是其中一个就可以,那要如何达到这种目的呢?

可以简化为:

如果随机到1,就是桃心弹幕,如果随机到2,就是文字弹幕。

第二步:让窗口动起来

我们已经搞定基础的弹幕准备条件,接下来就需要让我们的弹幕动起来。需要移动,因此,我们需要再次对坐标进行讨论。

之前,我们已经知道,在屏幕上的坐标轴。

在此基础上,我们需要在坐标水平移动,那移动的函数图像,就为

也就是说,当y逐渐增大,x不变。因此我们就得到了弹窗的移动路径。得到了移动路径,那如何移动窗口的位置呢?这里我们就用到窗口更新方法。update()然后我们来实现。y增加,x不变。就得到:

这里,我们处理超过边界,如果超过之后,我们就关闭弹窗。另外一种方式,超过,我们进入循环,重新开始。

如果超过了,我们就将y定义为负数,保证文字从左边慢慢出来,如果设置为0,就会出现突然出现一行字的情况,而不是慢慢出现。

这里,我们使用到了递归的方法,重复去调用move方法。以达到移动的目的。

需要注意的是,当递归超过一定次数时,就会报措。因为这个是程序默认的递归次数。如果出现下面这个错误,你成功遇到了递归的第一个坑。

那如何解决这个问题呢?

这里我们需要自己设置,去修改它的默认值,防止报措。

第三步:控制弹幕出现位置

我们已经可以控制弹幕的移动,接下来就是控制弹幕的出现位置。控制弹幕出现位置,需要修改的是窗口的坐标。因此就可以修改坐标位置。

弹幕出现在上半部分

弹幕出现在中间部分

弹幕出现在下半部分

弹幕出现在整个屏幕区域

第四步:控制弹幕的数量

接下来,我们需要将弹窗数量增加到我们需要的数量,也是为了给她惊喜是吧。增加延时,让弹窗依次延迟生成。

第五步:各种弹幕展示

爱心弹幕

文字弹幕

爱心文字组合弹幕

从右往左

五、文章总结

文章主要使用模块tkinter,tkinter更新窗口方式实现移动,递归的简单应用。线程组的简单应用。函数图像 f ( x)= b ( b∈ R) 的应用。

获取完整代码:公众号回复   “爱心弹窗

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230412A04JRA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券