Python实现彩带飘落和“跑马灯”效果
本文选自微信公众号:superdiao的果壳
朋友们,真的好久没有发文章了,感谢粉丝们一直以来的支持。最近笔者忙着找工作,中间也拿了几个offer,最终去了bat中的一个,算是比较满意的结果吧。今天,作为回归的第一次发文,来点好玩的文章吧。
大家都看过彩带飘落吧?这个在比较喜庆的场合是很常见的:
还有“跑马灯”效果,听起来很陌生,其实很常见,下面的就是:
好了,相信大家都有了初步的认识。当然,如果有做前端或者搞设计的同学,上面的效果应该不难实现,那如果想通过Python呢?有没有包可以调用呢?
答案是有的——pygame
这个包适合用来开发游戏,今天就不打算给大家详细介绍了,还是想给大伙儿放松放松,以后有机会再多写写它。
不多说,直接甩出代码:
# -*- coding: UTF-8 -*-
import pygame
from random import randint, choicescreen_length = 700
screen_width = 500
# 模拟彩带飘落的类,掉落的词作为彩带
class Word_drop(pygame.sprite.Sprite):# 设置属性:包括字体、下落速度、彩带来源、彩带框的属性def __init__(self):pygame.sprite.Sprite.__init__(self)self.font = pygame.font.SysFont(name='幼圆', size=10, bold=True, italic=True)self.speed = randint(15, 30)self.word = self.getWord()self.image = self.font.render(self.word, True,(randint(0, 255), randint(0, 255), randint(0, 255)))self.image = pygame.transform.rotate(self.image, randint(87, 93))self.rect = self.image.get_rect()self.rect.topleft = (randint(0, screen_length), -20)# 获取掉落的词def getWord(self):length = randint(1, 8)word = ''for i in range(length):word += choice('qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM')return word# 设置彩带更新的条件def update(self, *args):self.rect = self.rect.move(0, self.speed)if self.rect.top > screen_length:self.kill()# 实现"跑马灯"效果的函数
def word_translate(jx, ztw1, ztw2, screen_length, text):max_ztw = max(ztw1, ztw2)jx.x -= 5if jx.x < 0 - max_ztw:jx.x = (screen_length + 10)screen.blit(text, [jx.x, jx.y])if __name__ == '__main__':# 初始化工作pygame.init()pygame.font.init()# 渲染字体,两行字a = pygame.font.SysFont(name='幼圆', size=50, bold=True, italic=True)word1 = " 中国"text1 = a.render(word1, True, (255, 0, 0), (0, 0, 0))word2 = "我超级爱你"text2 = a.render(word2, True, (255, 0, 0), (0, 0, 0))# "跑马场"字体框的属性_, _, ztw1, zth1 = text1.get_rect()jx1 = pygame.Rect(screen_length, (screen_width / 2 - zth1), ztw1, zth1)_, _, ztw2, zth2 = text2.get_rect()jx2 = pygame.Rect(screen_length, (screen_width / 2), ztw2, zth2)# 其他相关设置screen = pygame.display.set_mode((screen_length, screen_width))clock = pygame.time.Clock()wordGroup = pygame.sprite.Group()while True:clock.tick(30)screen.fill((0, 0, 0))# 设置退出的条件for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()exit(0)# 彩带飘落word_object = Word_drop()wordGroup.add(word_object)wordGroup.update()wordGroup.draw(screen)# "跑马场"word_translate(jx1, ztw1, ztw2, screen_length, text1)word_translate(jx2, ztw1, ztw2, screen_length, text2)pygame.display.update()
好了,来看看效果:
还不错吧,有没有感觉好玩呢?
当然,如果需要,代码直接拿去用,根据自己的想法去改就行!
本文转自微信公众号:superdiao的果壳
喜欢的朋友可以去关注(关注后有福利哦~),记得先给本文点赞或者点喜欢呐!
Python实现彩带飘落和“跑马灯”效果相关推荐
- python中的字符串详解(附实现文字跑马灯效果)
python中的字符串详解 1.什么是字符串 相信大家对字符串应该是再熟悉不过了吧,因为日常生活中的一句话,或是路边的一则广告,其实它都相当于一个字符串,而顾名思义,字符串也就是一串串的由零个或多 ...
- HarmonyOS 实现跑马灯效果
跑马灯效果实现效果图 注意事项: HarmonyOS里面Text由于multiple_lines默认为false 所以我们可以直接来设置跑马灯效果,当想设置Text换行的时候设置multiple_li ...
- Android 使用 ellipsize 实现文字横向移动效果(跑马灯效果)
实现的效果图如下 ellipsize 可以设置跑马灯效果 具体代码设置如下 <TextViewandroid:layout_width="match_parent"andro ...
- TextView实现跑马灯效果
经常使用TextView会出现这样的情况,有限的空间内只能写一行,然后导致好多文字被"..."表示了,如图: 而且有可能是重要信息被隐藏了,于是就有了跑马灯效果. 实现方式很简单: ...
- 单行文字垂直/水平跑马灯效果
需求描述 接到的需求是这样的:跑马灯效果 一次展示一行文字 循环滚动 文字滚动到视野中停留一秒后滚出. 静态效果如下图,文字从下往上或者从右往左滚动,滚动到此位置时停留一秒(不会传动图... 网络上有 ...
- c语言小程序跑马灯,微信小程序实现文字跑马灯效果
本文实例为大家分享了微信小程序实现文字跑马灯的具体代码,供大家参考,具体内容如下 wxml 1 显示完后再显示 Box"> 2 出现白边后即显示 Box"> {{tex ...
- c语言小程序跑马灯,微信小程序实现跑马灯效果(完整代码)
在微信小程序 里实现跑马灯效果,类似滚动字幕或者滚动广告之类的,使用简单的CSS样式控制,没用到JS,效果如下图: Wxml代码:一个人活着就是为了让更多的人更好的活着! Wxss代码:/*首页跑马灯 ...
- js实现横向跑马灯效果
首先我们需要一个html代码的框架如下: <div style="position: absolute; top: 0px; left: 168px; width: 100%; mar ...
- 黑马vue---10-11、Vue实现跑马灯效果
黑马vue---10-11.Vue实现跑马灯效果 一.总结 一句话总结: 1. 给 [浪起来] 按钮,绑定一个点击事件 v-on @ 2. 在按钮的事件处理函数中,写相关的业务逻辑代码:拿到 ...
最新文章
- 芙蓉之约 , Serverless 技术实践营 3.25 成都站邀你来参加
- 【Linux】一步一步学Linux——pkill命令(126)
- 豆米--基于豆瓣API的WP7书籍搜索工具开源啦!
- 减少页面加载时间的方法
- datagrid与jqgrid区别
- C++--第12课 - 操作符重载 - 上
- 用jQuery实现.net 2.0 treeview客户端无刷新操作的实例
- QCA9531模块ART 认证测试指导
- 铁大自动选课工具使用说明
- java蓝桥杯数字黑洞_蓝桥杯题目练习之数字黑洞
- mac brew 启动服务时报错“Bootstrap failed: 5: Input/output error”
- TypeScript - 函数
- OpenCV每日函数 图像过滤模块 (6) erode腐蚀函数
- 服务器 'server_1' 上的 MSDTC 不可用。
- 真够色!这个AI项目让画师们激动中又透露着瑟瑟发抖!忍不住想尝试
- 计算机知识中Q是啥意思,物理电学中Q和q分别代表什么意思,初中物理电学的所有知识点,要全面!...
- python自动化办公读后感_《Python编程快速上手——让繁琐的工作自动化》读书笔记3...
- leetcode1079.活字印刷C++
- matlab三天写论文!截面空间计量模型实战
- myrio与fpga编程_【虚拟课堂】LabVIEW与MyRIO的逐点比较法插补实现(含FPGA)