pygame实现烟雨蒙蒙下彩虹雨


Posted in Python onNovember 11, 2019

学习了一天的深度学习,略有疲惫,我们用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()

效果展示

运行可以看到下图,还是有点那个意思的,静静地看着五彩斑斓的雨滴落下,一身的疲惫也减轻了不少。

pygame实现烟雨蒙蒙下彩虹雨

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

Python 相关文章推荐
Python读取网页内容的方法
Jul 30 Python
Python中生成Epoch的方法
Apr 26 Python
Flask解决跨域的问题示例代码
Feb 12 Python
python使用sqlite3时游标使用方法
Mar 13 Python
简单实现python聊天程序
Apr 01 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
Aug 22 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
Mar 29 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 Python
用python做游戏的细节详解
Jun 25 Python
Python pip替换为阿里源的方法步骤
Jul 02 Python
Python 解码Base64 得到码流格式文本实例
Jan 09 Python
 python中的元类metaclass详情
May 30 Python
Python实现元素等待代码实例
Nov 11 #Python
如何基于python生成list的所有的子集
Nov 11 #Python
使用django和vue进行数据交互的方法步骤
Nov 11 #Python
如何使用python进行pdf文件分割
Nov 11 #Python
python实发邮件实例详解
Nov 11 #Python
Python 中 -m 的典型用法、原理解析与发展演变
Nov 11 #Python
原来我一直安装 Python 库的姿势都不对呀
Nov 11 #Python
You might like
程序员编程十条戒律
2009/07/09 PHP
php操作mysql数据库的基本类代码
2014/02/25 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
js与jQuery 获取父窗、子窗的iframe
2013/12/20 Javascript
JavaScript中的操作符==与===介绍
2014/12/31 Javascript
设置jQueryUI DatePicker默认语言为中文
2016/06/04 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
原生js实现轮播图
2017/02/27 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
Vue按需加载的具体实现
2017/12/02 Javascript
js/jQuery实现全选效果
2019/06/17 jQuery
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
python实现五子棋小程序
2019/06/18 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
css3 伪类选择器快速复习小结
2019/09/10 HTML / CSS
委托证明的格式
2014/01/10 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
化学专业自荐信
2014/05/28 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
2015年底工作总结范文
2015/05/15 职场文书
大学生暑期实践报告
2015/07/13 职场文书
调解协议书范本
2016/03/21 职场文书
python flask开发的简单基金查询工具
2021/06/02 Python
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers