python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python代码雨

Python实现新年愿望代码雨效果

作者:Carl_奕然

新的一年又要来了,这篇文章主要为大家详细介绍了如何利用Python实现新年愿望代码雨的动画效果。文中的示例代码讲解详细,感兴趣的可以动手尝试一下

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模块常用函数介绍:

2.1.3 Pygame的event介绍

event模块常用函数介绍:

2.1.4 Pygame的font介绍

font模块常用函数介绍:

2.2 代码示例

了解了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()

执行效果

我再上一个截图,让你看的更直观

3、总结

看到这里, 今天的分享就要结束了。

今天主要介绍的是Pygame库的font、display、event等常用模块。

现在再回顾功能的实现逻辑, 其实也不算太难嘛。

你看, 也就 70多行代码呢。

2023,你肯定行的。

到此这篇关于Python实现新年愿望代码雨效果的文章就介绍到这了,更多相关Python代码雨内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文