pygame实现烟雨蒙蒙下彩虹雨
作者:HelloWorld! 时间:2023-05-07 01:19:36
学习了一天的深度学习,略有疲惫,我们用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()
效果展示
运行可以看到下图,还是有点那个意思的,静静地看着五彩斑斓的雨滴落下,一身的疲惫也减轻了不少。
来源:https://blog.csdn.net/weixin_45690272/article/details/102990127
标签:pygame,烟雨蒙蒙,彩虹雨
0
投稿
猜你喜欢
NumPy实现多维数组中的线性代数
2021-03-30 09:59:08
对YOLOv3模型调用时候的python接口详解
2023-05-31 00:58:57
二级下拉菜单代码
2008-11-01 18:18:00
Python数据相关系数矩阵和热力图轻松实现教程
2022-06-08 05:12:06
php分页查询的简单实现代码
2024-03-14 09:43:40
让Entity Framework支持MySql数据库
2010-12-14 15:22:00
python 配置uwsgi 启动Django框架的详细教程
2022-10-29 06:11:15
python引入requests报错could not be resolved解决方案
2022-08-28 08:24:45
python Web开发你要理解的WSGI & uwsgi详解
2021-02-04 08:46:38
.NET Core读取配置文件的方法
2024-06-05 09:31:38
详解duck typing鸭子类型程序设计与Python的实现示例
2022-12-26 07:12:19
js事件委托和事件代理案例分享
2024-04-28 09:51:31
js清空form表单中的内容示例
2023-08-23 16:22:02
PyTorch中反卷积的用法详解
2022-09-21 18:12:34
Dlib+OpenCV深度学习人脸识别的方法示例
2022-11-08 06:34:42
Python使用matplotlib绘制随机漫步图
2022-02-20 08:34:43
详解SQL Server数据库状态和文件状态
2024-01-26 14:09:28
Python的函数使用介绍
2022-07-02 12:05:42
python实现批量获取指定文件夹下的所有文件的厂商信息
2021-12-14 20:42:27
基于Python爬取51cto博客页面信息过程解析
2023-06-11 16:27:37