Python实现代码雨效果

article/2025/7/13 6:21:56

Python实现代码雨效果

main.py代码: 

"""功能:代码雨效果作者:指尖魔法师QQ:14555110
"""
import pygame
import randomdef main():# 初始化pygamepygame.init()# 默认不全屏fullscreen = False# 窗口未全屏宽和高WIDTH, HEIGHT = 1100, 600init_width, init_height = WIDTH, HEIGHT# 字块大小,宽,高suface_height = 18# 字体大小font_size = 20# 创建一个窗口screen = pygame.display.set_mode((init_width, init_height))# 字体font = pygame.font.Font('msyh.ttf', font_size)# 创建一个图像对象bg_suface = pygame.Surface((init_width, init_height), flags=pygame.SRCALPHA)pygame.Surface.convert(bg_suface)bg_suface.fill(pygame.Color(0, 0, 0, 28))# 用纯色填充背景screen.fill((0, 0, 0))# 显示的字符letter = ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c','v', 'b', 'n', 'm']texts = [font.render(str(letter[i]), True, (0, 255, 0)) for i in range(26)]# 也可以替换成0 1 显示# texts = [#     font.render('0',True,(0,255,0)),font.render('1',True,(0,255,0))# ]# 生成的列数column = int(init_width / suface_height)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:# 按F11切换全屏,或窗口if event.key == pygame.K_F11:print("检测到按键F11")fullscreen = not fullscreenif fullscreen:# 全屏效果,参数重设size = init_width, init_height = pygame.display.list_modes()[0]screen = pygame.display.set_mode(size, pygame.FULLSCREEN | pygame.HWSURFACE)else:init_width, init_height = WIDTH, HEIGHTscreen = pygame.display.set_mode((WIDTH, HEIGHT))# 图像对象重新创建bg_suface = pygame.Surface((init_width, init_height), flags=pygame.SRCALPHA)pygame.Surface.convert(bg_suface)bg_suface.fill(pygame.Color(0, 0, 0, 28))column = int(init_width / suface_height)drops = [0 for i in range(column)]elif event.key == pygame.K_ESCAPE:# 按ESC退出exit()# 延时pygame.time.delay(30)# 图像对象放到窗口的原点坐标上screen.blit(bg_suface, (0, 0))for i in range(len(drops)):# 随机字符text = random.choice(texts)# 把字符画到该列的下雨的位置screen.blit(text, (i * suface_height, drops[i]*suface_height))# 更新下雨的坐标drops[i] += 1# 超过界面高度或随机数,下雨位置置0if drops[i] * suface_height > init_height or random.random() > 0.95:drops[i] = 0# 更新画面pygame.display.flip()if __name__ =='__main__':main()

代码链接:

github链接

运行界面:


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

相关文章

酷炫黑客代码雨

大家看到这要说切scratch谁不会呀&#xff01; 我要说&#xff1a;退退退&#xff01; 话不多.................好了再见 代 码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>黑客帝国代码雨</title><st…

经典代码雨----C语言实现

代码架构&#xff1a; 1、初始化窗口&#xff08;窗口大小信息&#xff09; 2、描绘雨点信息&#xff08;颜色&#xff0c;数字&#xff09; 3、初始化雨&#xff08;雨点位置变化&#xff09; 4、下雨操作&#xff08;坐标更新&#xff09; 5、更新窗口&#xff08;场景描…

学习编程的方法及入门

&#xff08;入门&#xff09;学习编程可以通过以下步骤进行&#xff1a; 1. 确定学习目标&#xff1a;首先&#xff0c;明确你希望学习编程的具体目标和用途。这有助于你选择学习的编程语言和方向&#xff0c;例如网页开发、移动应用开发或数据分析等。 2. 选择编程语言&…

怎么学习编程?小白如何入门?

前言 编程的范围实在很大&#xff0c;学什么就是小白的首要问题。如果是学编程希望能够将重复工作自动化这类朋友&#xff0c;直接学Python即可。下文会说怎么学习&#xff0c;本文主要针对的是想要通过编程高薪转行的这类人。 一、编程方向 编程可就业的技术岗位非常多&…

易语言编程入门教程学习

易语言是一款中文开发软件&#xff0c;因为是国人开发的&#xff0c;对于国人使用也是比较友好的。其最大的特点&#xff0c;就是易&#xff0c;容易的易&#xff0c;新手入门很容易。 易语言简介 易语言是一门以中文作为程序代码编程语言。以“易”著称。创始人为吴涛。早期版…

入门编程指南:如何从零开始学习编程?

一、自学编程需要注意什么&#xff1f; 自学编程需要注意以下几点&#xff1a; 选择适合自己的编程语言&#xff0c;在学习初期建议选择易入手的编程语言。需要不断地练习&#xff0c;并建立自己的编程项目&#xff0c;以此提高编程技巧和应用能力。追求知识的全面性&#xf…

编程入门不知道怎么学?程序员小白来给你支招

最近有很多朋友私信小编,说想学编程,但是自己基础不好,很多东西都不会,看视频,遇到难点,也不知道怎么解决,甚至有时候竟为了找错误,花了一上午或一下午的时间,作为过来人的小编,确实很明白这些朋友的心情,因为小编也经历过(在此抱抱做安慰,不怕,有我在)。 从互联…

vs2017官方下载地址

Visual Studio 2017 15.9 Release Notes | Microsoft Docshttps://download.microsoft.com/download/D/1/4/D142F7E7-4D7E-4F3B-A399-5BACA91EB569/vs_Community.exe

目前下载VS2017你可能会遇到这个坑

可能现在大伙都已经开始使用VS2019进行开发了。VS2019的下载使用也都很简单。由于工作需要&#xff0c;今天要在笔记本上安装VS2017,结果发现&#xff0c;VS2017的下载变得不是那么容易了&#xff0c;官方的下载方式也隐藏的很深&#xff0c;来来回回折腾了好一会才下载下来&am…

VS2017离线下载、安装教程

扣扣技术交流群&#xff1a;460189483 1. 制作Visual Studio 2017 (VS 2017) 离线安装包 Visual Studio 2017版本&#xff0c;由于版本更新速度加快和与第三方工具包集成的原因&#xff0c;微软研发团队没有为这个版本提供离线下载的安装文件。如果用户处在一个与外网隔离的网…

vs2017下载安装教程

同时给的在线安装程序&#xff0c;运行完一下界面就啥也没有了&#xff0c;没有然后了&#xff0c;网上重新下载的也不行&#xff0c; 如下界面&#xff1a; 最后可以用你的github账号登录微软的官网&#xff0c;下载即可安装&#xff0c;详见&#xff1a; https://baijiahao…

微软官网下载各版本VS的地址

每次重装系统后想安装VS&#xff0c;但是又不想装最新版的VS&#xff0c;于是乎上微软官网下某个版本的VS&#xff08;比如VS2017&#xff09;。但是问题来了&#xff0c;发现怎么找都找不到下载旧版本VS的地方&#xff0c;在总的搜索处搜索VS2017也不行。嘿&#xff0c;我还就…

BAT校招产品经理:52道经典面试问题解答思路

我始终认为&#xff0c;产品经理面试时极具“套路”的&#xff0c;相比较其他岗位&#xff0c;它更要求面试者有极强的随机应变能力&#xff0c;与冷静思考的能力。 那如何最快的&#xff0c;最高效率的&#xff0c;掌握这些套路&#xff0c;并且在面试中表现出自己的沉着&…

在阿里云服务器上部署java项目(四)

在所有原材料下载完成之后&#xff0c;我们去阿里云官方网站上去设置端口&#xff0c;百度搜索阿里云进入官方网站&#xff0c;登录账号密码之后点击控制台 点击我们已开通的云服务器 进入云服务器管理控制台后&#xff0c;会显示我们现有的云服务器&#xff0c;以及实例ID、…

将在线数据加载到阿里云Greenplum

本文说明如何设计一个 ETL 作业以便将在线关系数据库里的数据&#xff0c;加载到阿里云的Greenplum 数据库中&#xff0c;如何调度和监控该ETL 作业的日常运行。 本文使用的软件是开源ETL 工具软件 Kettle 5.x&#xff0c;以及基于Kettle的傲飞数据整合平台&#xff0c;该平台可…

年末阿里百度等大厂技术面试题汇总,书籍+视频+学习笔记+技能提升资源库

前言 最近有不少人问我这样一个问题&#xff1a;「我刚接触编程&#xff0c;准备学习下Android开发&#xff0c;但是担心现在市场饱和了&#xff0c;Android开发的前景怎么样&#xff1f;」 想着可能有很多人都有这样的担心&#xff0c;于是就赶紧写篇文章&#xff0c;来跟你…

Axure RP 9基础教程(3)——添加图标元件

上一节我们学习了如何对一个矩形元件设置交互样式&#xff0c;我们完成了将元件设计为按钮&#xff0c;实现了鼠标悬停的交互样式和单击界面跳转的交互效果。 其实我们完全可以让我们设置的界面更加的美观。比如csdn的创作界面&#xff1a; 我们可以看到&#xff0c;在每个热区…

Android保活黑科技的技术实现,在阿里工作5年了

背景介绍 金三银四,又到了一年一度最火热的跳槽/招聘季节.相信很多小伙伴已经开始投简历,或者已经找到工作了 是的,我就是找到工作的那部分人 很多Android小伙伴最近找不到工作,特别急,其实我在找工作的时候也有过比较着急的情况,所以很能理解大家的心情.一直说要给大家分享一…

阿里iOS三面

转载地址 1.dSYM你是如何分析的&#xff1f; **2.**多线程有哪几种&#xff1f;你更倾向于哪一种&#xff1f; **3.**单例弊端&#xff1f; **4.**如何把异步线程转换成同步任务进行单元测试&#xff1f; **5.**介绍下App启动的完成过程&#xff1f; **6.**比如App启动过慢&am…

阿里程序员的2019Android年终盘点,必备技能知识点,程序员必须收藏

临近年末,回顾总结2019,很多从事Android开发的朋友仍然遇到了很多困难,无法实现突破。 本文旨在通过以下知识点总结 希望能帮助上述陷入移动开发困境的朋友。 所以接下来本篇文章主要介绍 Android 开发中的部分知识点,本文节选自阿里巴巴开发手册,下载地址。文末还有 高级…