小屌丝:鱼哥,2023年了, 你有啥愿望啊?
小鱼:这, 我可以选择不告诉你吗?
小屌丝:可以选择不告诉我,但是,你自己憋着,不难受吗?
小鱼:… 我可以告诉别人吗?
小屌丝:… 还有谁能像我,认真听你的愿望。
小鱼:这2023年刚开始,你这是来给我添堵,故意的??
小屌丝:既然你不想告诉我,那我也不勉强了,毕竟…
小鱼:你说话,说一半,留一半,不憋得难受吗?
小屌丝:习惯了, 反正, 我不难受,难受的就是别人!
小鱼:你可以啊, 长大了, 翅膀硬了。
小屌丝:别这么说, 毕竟, 我还有求于你。
小鱼:我可以拒绝吗?
小屌丝:我可以说拒绝无效吗?
小鱼:…
小屌丝:我在某音看到一个特效,蛮好的, 想让你帮我搞一下。
小鱼:深呼吸…深呼吸… 好吧, 你说吧,啥特效。
特效
小屌丝:为了看的更直观, 我再放个截个图。
小鱼:嗯,这个,我知道的。雨一直下,气氛不再融洽,在同个屋檐下 你渐渐…
小屌丝:停,停,停,打住。你咋还唱上了。
小鱼:哎唛呀… 入景了。
小屌丝:可别正没用的, 咱们要干正事了。
小鱼:好好好, 那咱,就趁着新年, 许个愿望吧。
小屌丝:你瞅瞅, 这立flag,还得我鱼哥。
在这里,我们要用到的第三方库是Pygame,
我相信,关于pygame,有些同学还是很陌生的,这里,我也是简单的唠叨几句:
display模块常用函数介绍:
event模块常用函数介绍:
font模块常用函数介绍:
了解了Pygame的模块的基本使用方法, 我们就来代码实现。
代码示例:
- # -*- coding:utf-8 -*-
- # @Time : 2023-01-01
- # @Author : Carl_DJ
- '''
- 实现功能:
- 新年愿望代码雨
- '''
-
- import random
- import pygame
-
- # 设置窗口的尺寸
- Windows_width = 1000
- Windows_heigh = 800
-
- #创建代码雨窗口
- pygame.init()
- winsur = pygame.display.set_mode((Windows_width,Windows_heigh))
-
- # 设置文字间距
- font_px = 18
-
- #设置文字大小
- font_a = pygame.font.SysFont('',26)
- bg_suface = pygame.Surface((Windows_width,Windows_heigh),flags = pygame.SRCALPHA)
- pygame.Surface.convert(bg_suface)
- bg_suface.fill(pygame.Color(0,0,0,26))
- #填充
- winsur.fill((0,0,0))
-
- # 设置代码雨的内容
- message = '2023 HappyNewYear! 2023HappyNewYear! 2023 HappyNewYear!'
-
- #设置字体及颜色
- texts = [font_a.render(message[i],True,(10,255,255)) for i in range(40)]
-
- # 设置屏幕显示比例,防止字幕超过屏幕
- colum = int(Windows_width/ font_px)
- drops = [0 for i in range (colum)]
-
- # 让字幕一直显示,避免一闪而过的尴尬
- while True:
- #从队列中获取
- for event in pygame.event.get():
- #添加判断,超过则退出
- if event.type == pygame.QUIT:
- exit()
- elif event.type == pygame.KEYDOWN:
- change = pygame.key.get_pressed()
- if change[30]:
- exit()
- # 设置下落速度为50ms
- pygame.time.delay(50)
-
- #重新编译图像
- winsur.blit(bg_suface,(0,0))
- for i in range(len(drops)):
- text = random.choice(texts)
- #重排每个坐标点
- winsur.blit(text,(i * font_px,drops[i] * font_px))
- drops[i] += 1
- #禁止行数超过屏幕的高
- if drops[i] * 10 > Windows_heigh or random.random() > 0.95:
- drops[i] = 0
- pygame.display.flip()
-
-
执行效果
新年祝福
我再上一个截图,让你看的更直观
看到这里, 今天的分享就要结束了。
今天主要介绍的是Pygame库的font、display、event等常用模块。
现在再回顾功能的实现逻辑, 其实也不算太难嘛。
你看, 也就70多行代码呢。
2023,你肯定行的。