Python Pygame 实现烟雨江南彩虹雨特效

认真发呆
认真发呆
发布时间:2026-10-13| 6人浏览过
原创

本文介绍如何利用 Python 的 Pygame 库制作烟雨江南风格的彩虹雨动画。通过加载背景图并随机生成不同大小、颜色和速度的雨滴,实现持续落下的视觉效果。代码包含雨滴初始化、屏幕绘制及循环刷新逻辑,帮助开发者快速掌握基础图形渲染与动画控制技巧。

Pygame 彩虹雨项目概述

经过一天深度学习后感到些许疲惫,不妨用 Pygame 编写一个小游戏来放松一下。今天我们要制作的主题是烟雨蒙蒙背景下的彩虹雨,营造出置身江南水乡的氛围。

游戏场景描述

游戏描述

我们的目标是呈现江南水乡中下起彩虹雨的场景。背景需为烟雨朦胧的江南景色,雨滴颜色五彩斑斓且大小不一,以此增强视觉层次感。

实现思路分析

解决思路

实现烟雨彩虹雨的核心元素包括烟雨背景、彩虹色雨滴以及下落动作。基本实现思路如下:

1. 选取一张江南水乡烟雨蒙蒙的图片作为游戏背景。 2. 使用圆形代表雨滴,随机设置圆的大小和颜色,从而产生五彩斑斓的视觉效果。 3. 实现下雨效果,即让雨滴从上至下持续下落。这需要在 Pygame 中通过在不同坐标位置绘制圆形来实现。

核心代码实现

代码实现

具体实现代码如下:


import pygame
import random
pygame.init()
#加载图片
pic=pygame.image.load('raining.jpg')
#获取图片的长宽
screen_width=pic.get_width()
screen_height=pic.get_height()
#根据图片大小来设置屏幕大小
screen=pygame.display.set_mode([screen_width,screen_height])
#设置彩虹雨的雨滴个数,颜色,位置,大小,落下的速度
numbers=50
colors=[0]*numbers
location_x=[0]*numbers
location_y=[0]*numbers
sizes=[0]*numbers
speed=[0]*numbers
#初始化彩虹雨滴
for i in range(numbers):
 colors[i]=(random.randint(0,255),random.randint(0,255),random.randint(0,255))
 location_x[i]=random.randint(0,screen_width)
 location_y[i]=-random.randint(0,screen_height)
 sizes[i]=random.randint(5,20)
 speed[i]=random.randint(1,5)

keep_going=True
#用Clock实现来控制动画的速度
timer=pygame.time.Clock()

while keep_going:
 for event in pygame.event.get(): #监听事件
 if event.type==pygame.QUIT:
  keep_going=False
 #把图片绘制到屏幕
 screen.blit(pic,(0,0))
 for i in range(numbers):
 pygame.draw.circle(screen,colors[i],(location_x[i],location_y[i]),sizes[i]) #让雨滴画在屏幕上
 location_y[i]=location_y[i]+speed[i]   #雨滴落下,y轴方向

 if location_y[i]>screen_height:    #如果雨滴落到看不见,即超出屏幕的高度
  location_y[i]-=screen_height   #重新设置雨滴的参数
  location_x[i]=random.randint(0,screen_width)
  speed[i] = random.randint(1, 5)
 timer.tick(100)# timer每秒钟滴答100次,因此帧率为100fps
 pygame.display.update() #刷新屏幕

pygame.quit()

运行效果展示

效果展示

运行程序后可见下图,效果颇具意境。静静观看五彩斑斓的雨滴落下,能有效缓解一天的疲惫。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。