Python制作代码雨

article/2025/8/29 17:49:20

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

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

简单设计:

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
ACTIVEEVENTPygame被激活或者隐藏gain, state
KEYDOWN键盘被按下unicode, key, mod
KEYUP键盘被放开key, mod
MOUSEMOTION鼠标移动pos, rel, buttons
MOUSEBUTTONDOWN鼠标按下pos, button
MOUSEBUTTONUP鼠标放开pos, button
VIDEORESIZEPygame窗口缩放size, w, h

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


http://chatgpt.dhexx.cn/article/ZvYDL3FZ.shtml

相关文章

【HTML——代码雨】(效果+代码)

关于“代码雨”,我已经写过许多种了。那么今天,再送给大家一款,希望大家喜欢! 效果展示 代码 很简洁,下面即为全部源代码喔 ~ HTML——代码雨.html <!doctype html> <html><head>

代码雨源代码

代码雨 #include <windows.h> #define ID_TIMER 1 #define STRMAXLEN 25 //一个显示列的最大长度 #define STRMINLEN 8 //一个显示列的最小长度 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; // // typedef struct tagCharChain //整个当作屏幕的…

html 代码雨

https://blog.csdn.net/Feng_wwf/article/details/108461313 玩了一下&#xff0c;好像实现了每一行都是完整的话&#xff0c;造成一种密文的效果hhh。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title&g…

三种代码生成炫酷代码雨(推荐)

一、html代码雨 效果图&#xff1a; 代码块 <html lang"en"> <head><meta charset"UTF-8"><title>Code</title><style>body{margin: 0;overflow: hidden;}</style> </head><body> <canvas id&…

“代码雨”js+css+html实现

先看看效果&#xff1a; HTML代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <link rel"stylesheet" type"text/css" href"css/ok.css"> <title>code by-zhenyu.sha<…

炫酷的代码雨

相信大家都看过《黑客帝国》吧&#xff0c;里面的代码雨是不是非常炫酷 &#xff1f;今天带大家做出代码雨。 bat文件 bat1 echo off :: Code by hxuan999 2006-11-12 CMDXP :: http://www.cn-dos.net/forum/viewthread.php?tid24418 setlocal ENABLEDELAYEDEXPANSION colo…

“代码雨”纯HTML源码实现及效果

先看看效果 1、绿色&#xff1a; 2、彩色&#xff1a; 3、背景色&#xff1a; 4、绿色逐渐变浅&#xff1a; 源代码&#xff1a; <!DOCTYPE html> <html><head> <meta http-equiv"Content-Type" content"text/html;charsetutf-8"…

代码雨大全(装逼或学习)--KuaiLe推荐

这种&#xff1b;注&#xff1a;后面还有。 代码&#xff1a; echo off title digitalrain color 0a &#xff1a;<-----修改颜色 setlocal ENABLEDELAYEDEXPANSION for /l %%i in (0) do ( set "line" for /l %%j in (1,1,80) do ( set /a Down%%j-2 set…

代码雨怎么编写

百度经验:jingyan.baidu.com Windows编程语言技巧。DOS命令编程。如何使用DOS命令编写一个代码雨小程序&#xff1f; 百度经验:jingyan.baidu.com 工具/原料 电脑 记事本 百度经验:jingyan.baidu.com 方法/步骤 1 很多人都觉得黑客帝国里&#xff0c;电脑屏幕上的绿色代码雨非常…

代码雨教程

可以用电脑自带的文本文档打&#xff0c;很简单的。 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <style type"text/css"> html,body{width: 100%;height: 100%;} body{ background: #000; overflow: hidden; m…

用最简单的方法生成代码雨,效果相当的哇塞。

生成黑客帝国中的代码雨&#xff0c;效果相当的哇塞&#xff0c;过程相当的简单&#xff0c;不需要电脑额外的安装工具。 文章目录 前言一、使用步骤1.在桌面新建一个txt文本2.代码3.最重要的步骤4.运行代码 总结 前言 提示&#xff1a; 有时候需要装X&#xff0c;高一些看起…

多种代码生成炫酷代码雨(推荐)

学习目标 1、一周掌握 JAVA入门到进阶知识 2、掌握基础C#l窗体知识 3、手把手教你vbs脚本制作 4、强大的 IDEA编程利器 5、经典少见的 面试题目技巧 本人主页 多种代码生成代码雨 文章目录 学习目标多种代码生成代码雨一、html代码雨效果图&#xff1a;代码块 二、vb代码雨效…

三分钟教你实现“代码雨”

本篇文章介绍一下如何实现“代码雨”。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。 先看看效果 1、绿色&#xff1a; 2、彩色&#xff1a; 3、背景色&#xff1a; 4、绿色逐渐变浅&#xff1a; 源代码&#xff1a; <!DOCTYPE …

30行python代码实现“代码雨”

介绍 上手 python&#xff0c;很多人最先接触的就是 pygame 包了&#xff0c;能在有一定趣味性的同时&#xff0c;建立起对 python 的基本认识。 提到编程&#xff0c;我想很多人的第一印象就是影片中的黑客形象&#xff0c;在黑色背景下敲击键盘&#xff0c;打出闪烁着绿光的…

云服务器和传统服务器的区别,企业选哪个比较合适

随着云计算的发展&#xff0c;更多的个人和企业都会了解到云服务器&#xff0c;那么云服务器和传统服务器哪个更好&#xff0c;选择云服务器还是传统服务器&#xff1f;还是跟着赞奇云工作站一起来看看文章就明白了。 服务器一般分为云服务器和传统物理服务器。服务器具有高速…

腾讯云服务器地域有什么区别?怎么选比较好

腾讯云服务器地域有什么区别&#xff1f;云服务器地域怎么选择&#xff1f;地域是指云服务器所在机房的地理位置&#xff0c;用户距离地域越近网络延迟越低&#xff0c;速度越快&#xff0c;所以地域就近选择即可。广州上海北京等地域网站域名需要备案&#xff0c;中国香港或其…

阿里云服务器选择什么操作系统比较好?

阿里云服务器操作系统分为Linux和Windows两大类&#xff0c;Linux可以选择Alibaba Cloud Linux&#xff0c;Windows可以选择Windows Server 2022 数据中心版 64位中文版&#xff0c;阿里云百科来详细说下阿里云服务器操作系统有哪些&#xff1f;以及选择哪个操作系统比较好&…

在这个云时代,如何选择性价比更高的云服务器

目录 前言 1. 解决方法 2. 为什么不继续局域网 3. 云服务器部署的优点 4. 如何选择云服务器 5. 京东云售后服务 6. 产品云链接 7. 如何购买 结语 前言 上学期呢&#xff0c;我室友眼看着我天天学习Python&#xff0c;自己也坐不住了&#xff0c;然后也就跟着我学Pytho…

本地服务器与云服务器哪个好?

本地服务器和云服务器是企业可以使用的两种不同的服务器设置。主要区别在于本地服务器托管&#xff0c;第三方提供商托管云服务器。那么&#xff0c;本地服务器和云服务器哪个更好呢&#xff1f; 接下来&#xff0c;将带大家讨论本地服务器和云服务器的优缺点&#xff0c;并帮…

云平台和买服务器对比

单模态模型配置以及花费时间 Second模型 GPU&#xff1a;8 Nvidia V100 GPUs块数&#xff1a;8训练时间&#xff1a;大约24小时使用4块3090跑的时间&#xff1a;大约28-30小时 PV-RCNN模型 GPU&#xff1a;8 Nvidia V100 GPUs块数&#xff1a;8训练时间&#xff1a;大约2-3…