当前位置:首页 » 《随便一记》 » 正文

Python3,我把新年祝福写在“雨“中,你看,雨一直下,气氛还算融洽,在同个屋檐下....

2 人参与  2023年02月03日 08:41  分类 : 《随便一记》  评论

点击全文阅读


新年愿望写在"雨"中

1、引言2、代码实战2.1 模块介绍2.1.1 Pygame 介绍2.1.2 Pygame的display介绍2.1.3 Pygame的event介绍2.1.4 Pygame的font介绍 2.2 代码示例 3、总结

1、引言

小屌丝:鱼哥,2023年了, 你有啥愿望啊?
小鱼:这, 我可以选择不告诉你吗?
小屌丝:可以选择不告诉我,但是,你自己憋着,不难受吗?
小鱼:… 我可以告诉别人吗?
小屌丝:… 还有谁能像我,认真听你的愿望。
小鱼:这2023年刚开始,你这是来给我添堵,故意的??
小屌丝:既然你不想告诉我,那我也不勉强了,毕竟…
小鱼:你说话,说一半,留一半,不憋得难受吗?
小屌丝:习惯了, 反正, 我不难受,难受的就是别人!
小鱼:你可以啊, 长大了, 翅膀硬了。
小屌丝:别这么说, 毕竟, 我还有求于你。
小鱼:我可以拒绝吗?
小屌丝:我可以说拒绝无效吗?
小鱼:…
小屌丝:我在某音看到一个特效,蛮好的, 想让你帮我搞一下。
小鱼:深呼吸…深呼吸… 好吧, 你说吧,啥特效。

特效

小屌丝:为了看的更直观, 我再放个截个图。

在这里插入图片描述
小鱼:嗯,这个,我知道的。雨一直下,气氛不再融洽,在同个屋檐下 你渐渐…
小屌丝:停,停,停,打住。你咋还唱上了。
小鱼:哎唛呀… 入景了。
小屌丝:可别正没用的, 咱们要干正事了。
小鱼:好好好, 那咱,就趁着新年, 许个愿望吧。
小屌丝:你瞅瞅, 这立flag,还得我鱼哥。
在这里插入图片描述

2、代码实战

2.1 模块介绍

2.1.1 Pygame 介绍

在这里,我们要用到的第三方库是 Pygame
我相信,关于pygame,有些同学还是很陌生的,这里,我也是简单的唠叨几句:

Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础上开发;Pygame 是一个高可移植性的模块可以支持多个操作系统,是跨平台Python模块,为游戏而设计的库;Pygame是免费的库;

2.1.2 Pygame的display介绍

display模块常用函数介绍

pygame.display.init():初始化display 模块;pygame.display.quit():结束display 模块;pygame.display.get_init():如果display已经初始化,则返回True;pygame.display.set_mode():初始化一个准备显示的窗口;pygame.display.get_surface():获取当前显示的Surface对象;pygame.display.flip():更新整个待显示的 Surface 对象到屏幕上;pygame.display.list_modes():获取全屏模式下可使用的分辨率;

2.1.3 Pygame的event介绍

event模块常用函数介绍

pygame.event.pump() : 让 Pygame 内部自动处理事件 ;pygame.event.get() : 从队列中获取事件;pygame.event.poll() : 从队列中获取一个事件 ;pygame.event.wait() — 等待并从队列中获取一个事件;pygame.event.peek() : 检测某类型事件是否在队列中 ;pygame.event.clear() :从队列中删除所有的事件 ;pygame.event.event_name() : 通过 id 获得该事件的字符串名字;pygame.event.set_blocked() : 控制哪些事件禁止进入队列 ;pygame.event.set_allowed(): 控制哪些事件允许进入队列 ;pygame.event.get_blocked() :检测某一类型的事件是否被禁止进入队列;pygame.event.set_grab() : 控制输入设备与其他应用程序的共享 ;pygame.event.get_grab() : 检测程序是否共享输入设备 ;pygame.event.post() :放置一个新的事件到队列中;pygame.event.Event(): 创建一个新的事件对象;

2.1.4 Pygame的font介绍

font模块常用函数介绍

pygame.font.init() : 初始化字体模块;pygame.font.quit(): 还原字体模块;pygame.font.get_init() : 检查字体模块是否被初始化;pygame.font.get_default_font() : 获得默认字体的文件名;pygame.font.get_fonts() : 获取所有可使用的字体;pygame.font.match_font() : 在系统中搜索一种特殊的字体;pygame.font.SysFont() :从系统字体库创建一个 Font 对象 类;

2.2 代码示例

了解了Pygame的模块的基本使用方法, 我们就来代码实现。

代码示例

# -*- coding:utf-8 -*-# @Time   : 2023-01-01# @Author : Carl_DJ'''实现功能:    新年愿望代码雨'''import randomimport pygame# 设置窗口的尺寸Windows_width = 1000Windows_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()

执行效果

新年祝福

我再上一个截图,让你看的更直观
在这里插入图片描述

3、总结

看到这里, 今天的分享就要结束了。
今天主要介绍的是Pygame库的font、display、event等常用模块。
现在再回顾功能的实现逻辑, 其实也不算太难嘛。
你看, 也就 70多行代码呢。
2023,你肯定行的。

新年了,小鱼也给看到这篇博文的大佬们送上祝福:

心圆梦圆, 团团圆圆财源福源, 左右逢源情缘友缘, 相逢有缘心愿祝愿,愿愿随心

最后再唠叨一句:

我是小鱼

CSDN 博客专家阿里云 专家博主51CTO 博客专家51认证讲师金牌面试官

关注,带你学习更多更有趣的Python知识。


点击全文阅读


本文链接:http://zhangshiyu.com/post/52391.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1