本文选自微信公众号: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的果壳

喜欢的朋友可以去关注(关注后有福利哦~),记得先给本文点赞或者点喜欢呐!

微信公众号:superdiao的果壳

Python实现彩带飘落和“跑马灯”效果相关推荐

  1. python中的字符串详解(附实现文字跑马灯效果)

    python中的字符串详解 1.什么是字符串 ​ 相信大家对字符串应该是再熟悉不过了吧,因为日常生活中的一句话,或是路边的一则广告,其实它都相当于一个字符串,而顾名思义,字符串也就是一串串的由零个或多 ...

  2. HarmonyOS 实现跑马灯效果

    跑马灯效果实现效果图 注意事项: HarmonyOS里面Text由于multiple_lines默认为false 所以我们可以直接来设置跑马灯效果,当想设置Text换行的时候设置multiple_li ...

  3. Android 使用 ellipsize 实现文字横向移动效果(跑马灯效果)

    实现的效果图如下 ellipsize 可以设置跑马灯效果 具体代码设置如下 <TextViewandroid:layout_width="match_parent"andro ...

  4. TextView实现跑马灯效果

    经常使用TextView会出现这样的情况,有限的空间内只能写一行,然后导致好多文字被"..."表示了,如图: 而且有可能是重要信息被隐藏了,于是就有了跑马灯效果. 实现方式很简单: ...

  5. 单行文字垂直/水平跑马灯效果

    需求描述 接到的需求是这样的:跑马灯效果 一次展示一行文字 循环滚动 文字滚动到视野中停留一秒后滚出. 静态效果如下图,文字从下往上或者从右往左滚动,滚动到此位置时停留一秒(不会传动图... 网络上有 ...

  6. c语言小程序跑马灯,微信小程序实现文字跑马灯效果

    本文实例为大家分享了微信小程序实现文字跑马灯的具体代码,供大家参考,具体内容如下 wxml 1 显示完后再显示 Box"> 2 出现白边后即显示 Box"> {{tex ...

  7. c语言小程序跑马灯,微信小程序实现跑马灯效果(完整代码)

    在微信小程序 里实现跑马灯效果,类似滚动字幕或者滚动广告之类的,使用简单的CSS样式控制,没用到JS,效果如下图: Wxml代码:一个人活着就是为了让更多的人更好的活着! Wxss代码:/*首页跑马灯 ...

  8. js实现横向跑马灯效果

    首先我们需要一个html代码的框架如下: <div style="position: absolute; top: 0px; left: 168px; width: 100%; mar ...

  9. 黑马vue---10-11、Vue实现跑马灯效果

    黑马vue---10-11.Vue实现跑马灯效果 一.总结 一句话总结: 1. 给 [浪起来] 按钮,绑定一个点击事件   v-on   @ 2. 在按钮的事件处理函数中,写相关的业务逻辑代码:拿到 ...

最新文章

  1. 芙蓉之约 , Serverless 技术实践营 3.25 成都站邀你来参加
  2. 【Linux】一步一步学Linux——pkill命令(126)
  3. 豆米--基于豆瓣API的WP7书籍搜索工具开源啦!
  4. 减少页面加载时间的方法
  5. datagrid与jqgrid区别
  6. C++--第12课 - 操作符重载 - 上
  7. 用jQuery实现.net 2.0 treeview客户端无刷新操作的实例
  8. QCA9531模块ART 认证测试指导
  9. 铁大自动选课工具使用说明
  10. java蓝桥杯数字黑洞_蓝桥杯题目练习之数字黑洞
  11. mac brew 启动服务时报错“Bootstrap failed: 5: Input/output error”
  12. TypeScript - 函数
  13. OpenCV每日函数 图像过滤模块 (6) erode腐蚀函数
  14. 服务器 'server_1' 上的 MSDTC 不可用。
  15. 真够色!这个AI项目让画师们激动中又透露着瑟瑟发抖!忍不住想尝试
  16. 计算机知识中Q是啥意思,物理电学中Q和q分别代表什么意思,初中物理电学的所有知识点,要全面!...
  17. python自动化办公读后感_《Python编程快速上手——让繁琐的工作自动化》读书笔记3...
  18. leetcode1079.活字印刷C++
  19. matlab三天写论文!截面空间计量模型实战
  20. myrio与fpga编程_【虚拟课堂】LabVIEW与MyRIO的逐点比较法插补实现(含FPGA)

热门文章

  1. 中国PCTG行业研究与投资前景报告(2021版)
  2. Get新技能 - 制作网线
  3. 医疗行业供应商管理体系优化方案:实现采购计划与供应商生产计划的联动
  4. linux 日志内容过滤
  5. 快手“进城”难,只靠直播创收能顺利IPO吗?
  6. gitee码云完整使用教程(部署与克隆)
  7. select下拉框回显
  8. 微信公众平台开发教程(十一)微信企业号上线
  9. 储能式UPS在数据中心的应用探讨
  10. 国产完美替换MLX90393三轴霍尔传感器