我一个朋友在某音看到了这玩意儿。它非得让我也搞一个。

反正也无聊就简单写了一个

简单设计:

1.黑色背景,绿色字体,内容为随机符号-----pygame和random

2.下落,显示,刷新

直接上代码:

'''
python 3.9
pycharm.pro.2021.3
'''import random
import pygame# 初始化参数设计
win_width = 1000
win_height = 800
font_px = 15# 创建窗口及文本设计
pygame.init()
winsur = pygame.display.set_mode((win_width, win_height))
font = pygame.font.SysFont('', 23)
bg_suface = pygame.Surface((win_width, win_height), flags=pygame.SRCALPHA)
pygame.Surface.convert(bg_suface)
bg_suface.fill(pygame.Color(0, 0, 0, 28))
winsur.fill((0, 0, 0))
# 文本内容
letter = '1234567890!@#$%^&*qwertyuiopasdfghjklzxcvbnm'
texts = [font.render(letter[i], True, (0, 255, 0)) for i in range(44)]# 显示设计
column = int(win_width / font_px)
drops = [0 for i in range(column)]
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[32]:exit()# 延时30pygame.time.delay(30)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 > win_height or random.random() > 0.95:drops[i] = 0#pygame.display.flip()

效果图:

代码中使用了一些pygame里面的模块,大家可以自学( http://www.pygame.org )

这里给大家列出来了pygame里的一些模块以及一些方法

pygame.cdrom       访问光驱
pygame.cursors      加载光标
pygame.display      访问显示设备
pygame.draw         绘制形状、线和点
pygame.event        管理事件
pygame.font         使用字体
pygame.image        加载和存储图片
pygame.joystick     使用游戏手柄或者 类似的东西
pygame.key          读取键盘按键
pygame.mixer        声音
pygame.mouse        鼠标
pygame.movie        播放视频
pygame.music        播放音频
pygame.overlay      访问高级视频叠加
pygame.rect         管理矩形区域
pygame.sndarray     操作声音数据
pygame.sprite       操作移动图像
pygame.surface      管理图像和屏幕
pygame.surfarray    管理点阵图像数据
pygame.time         管理时间和帧信息
pygame.transform    缩放和移动图像

绘制图形

Pygame的坐标原点(0,0)点位于左上角,X轴自左向右,Y轴自上向下,单位为像素。

这里介绍一下常用的方法:

pygame.draw.line(Surface, color, start_pos, end_pos, width)此方法用于绘制一条线段

pygame.draw.aaline(Surface, color, start_pos, end_pos, blend)此方法用于绘制一条抗锯齿的线

pygame.draw.lines(Surface, color, closed, pointlist, width)此方法用于绘制一条折线

pygame.draw.rect(Surface, color, Rect)此方法用于绘制一个矩形

pygame.draw.rect(Surface, color, Rect, width)此方法用于绘制一个矩形框

pygame.draw.ellipse(Surface, color, Rect)此方法用于绘制一个椭圆

pygame.draw.ellipse(Surface, color, Rect, width)此方法用于绘制一个椭圆框

pygame.draw.polygon(Surface, color, pointlist, width)此方法用于绘制一个多边形

pygame.draw.arc(Surface, color, Rect, start_angle, stop_angle, width)此方法用于绘制一条弧线

pygame.draw.circle(Surface, color, Rect, radius)此方法用于绘制一个圆

Pygame实现动画主要用到的方法:

pygame.image.load(filename)加载一张图片

pygame.Surface.blit(source, dest, area=None, special_flags = 0)将图片绘制到屏幕相应坐标上(后面两个参数默认,可以不传)

pygame.time.Clock()获得pygame的时钟

pygame.time.Clock.tick(FPS)设置pygame时钟的间隔时间

绘制文字

如果你想绘制文字到屏幕上,Pygame提供了很方便的方法使用.ttf字体文件,这样我们就能很轻易的将文字绘制在屏幕上了。

这里我使用了ARBERKLEY.ttf作为字体,字体文件的获取请参考1.5代码获取。

主要用到的方法:

pygame.font.Font(filename, size)

filename:字体文件的文件名;

size:字体的高height,单位为像素;

pygame.font.Font.render(text, antialias, color, background=None)

text:要显示的文字;

antialias: 是否抗锯齿;

color:字体颜色;

background:背景颜色(可选参数);

.get_rect()

获得一个对象的rect,以便于设置其坐标位置

播放音频

在Pygame里播放音频有两个方法,一个用来播放特效声音,一个用来播放背景音乐:

pygame.mixer.Sound(filename)

该方法返回一个Sound对象,调用它的.play( )方法,即可播放较短的音频文件(比如玩家受到伤害、收集到金币等);

pygame.mixer.music.load(filename)

该方法用来加载背景音乐,之后调用pygame.mixer.music.play( )方法就可以播放背景音乐(Pygame只允许加载一个背景音乐在同一个时刻)

 事件

Pygame里常用的事件如下表:

事件 产生途径 参数
QUIT 用户按下关闭按钮 none
ACTIVEEVENT Pygame被激活或者隐藏 gain, state
KEYDOWN 键盘被按下 unicode, key, mod
KEYUP 键盘被放开 key, mod
MOUSEMOTION 鼠标移动 pos, rel, buttons
MOUSEBUTTONDOWN 鼠标按下 pos, button
MOUSEBUTTONUP 鼠标放开 pos, button
VIDEORESIZE Pygame窗口缩放 size, w, h

更多的可以参考官方文档:http://www.pygame.org/docs/http://www.pygame.org/docs/

Python制作代码雨相关推荐

  1. 有点无聊,来用Python制作代码雨

    前言 刚刚有人找我要流星雨的代码 可惜了,我没有这个,所以我就来搞个代码雨吧 效果展示 应该很多人都看过这个的 也是无聊就拿出来发发 实现代码 模块准备 源码.点击领取即可 import random ...

  2. python画代码雨

    python实现屏幕代码雨 通过Python实现屏幕代码雨 python 版本 看不出来是2.x还是3.x的建议百度 根据情况调节屏幕大小 否则屏幕显示不下会报错 PANEL_width = 1000 ...

  3. 用HTML制作代码雨源码分享

    <!DOCTYPE HTML><html><head><meta charset="utf-8" /><title>代码 ...

  4. python制作代码舞视频来啦~

    上一篇文章我们介绍了如何制作字符画视频,今天就来给大家介绍一下代码舞的视频制作 最后效果展示 首先是原版 接着是黑白版的 最后是彩色版的 是不是看着很nice呢,哈哈哈哈 项目实现 第一步 首先我们要 ...

  5. python黑客帝国代码雨特效

    效果: 代码: try: import pygame import sys from pygame.locals import * from random import randint except: ...

  6. Python黑客帝国代码雨

    文章目录 准备 代码 准备 需要安装pygame 安装代码: pip install pygame 代码 代码如下: import random import pygame #我的电脑分辨率是这个数值 ...

  7. 奥运五环的python制作代码大全_Python绘制奥运五环

    绘制奥运五环主要涉及到Python中的turtle绘图库运用: turtle.forward(distance) 向当前画笔方向移动distance像素长度 turtle.backward(dista ...

  8. python编写代码雨_花瓣雨飞舞的春天turtle版源代码

    python flower rain花瓣雨飞舞的春天turtle版需要寻找"浪漫"吗?这里已经有了,音乐也为你配好了.你们相遇的日子,是否是在花瓣雨飞舞的春天? music已经响起 ...

  9. Get了!用Python制作数据预测集成工具 | 附代码

    作者 | 李秋键 责编 | 晋兆雨 大数据预测是大数据最核心的应用,是它将传统意义的预测拓展到"现测".大数据预测的优势体现在,它把一个非常困难的预测问题,转化为一个相对简单的描述 ...

  10. python英语翻译-python制作英语翻译小工具代码实例

    这篇文章主要介绍了python制作英语翻译小工具代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 用python爬虫可以制作英语翻译小工具.来 ...

最新文章

  1. 计算机网络谢希仁第七版课后答案第三章 数据链路层
  2. Python入门篇-数据结构堆排序Heap Sort
  3. 在批处理中运行.sql文件
  4. 客户端用javascript填充Dropdownlist,服务器端获取不到Dropdownlist的值
  5. 线下活动 × 深圳 | 大咖云集!第11届国际博士生论坛报名开启
  6. 2020 华为杯 数模 B题 数据挖掘
  7. solidity事件详解
  8. python 前端学习_python学习之路7 前端学习3
  9. python自学看什么书-python自学看什么书
  10. linux文件被锁定,Linux下锁定系统重要文件,防止篡改
  11. U盘安装CentOS系统详细教程
  12. 西奥电梯服务器无响应,干货│西奥电梯故障分析和技术文件
  13. 证券公司信息化4_最核心的IT系统是什么?柜台系统的两个主要功能?一个交易过程是怎样的?
  14. 打开html按钮没文字,为什么我打开网页有些字没显示但能点击
  15. 远程桌面连接服务器时,键盘不能正常打字
  16. [IPhone] 如何将制作图片放大缩小的动作
  17. css3绘制十字架,纯css画十字架 8.21
  18. python matplotlib绘制折线图_Matplotlib实践系列:折线图完全示例
  19. 强化学习经典model-free方法总结
  20. 愿你三冬暖,愿你春不寒

热门文章

  1. arduino液位传感器_「雕爷学编程」Arduino动手做(24)——水位传感器模块
  2. 【保证能用】Ubuntu创建一个正常权限的用户
  3. QML 自定义鼠标光标
  4. 去除CSDN系统通知小红点
  5. 背包九讲--01背包
  6. zabbix监控kafka模板_一篇运维老司机的大数据平台监控宝典
  7. MFC——在共享DLL中使用MFC、在静态库中使用MFC
  8. 临时表空间和数据表空间
  9. C++中this指针
  10. 用友ERP-NC系统 漏洞 NCFindWeb接口任意文件下载