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(Tornado)模拟登录小米抢手机
Nov 12 Python
python中执行shell命令的几个方法小结
Sep 18 Python
实例讲解Python设计模式编程之工厂方法模式的使用
Mar 02 Python
Python正则表达式使用范例分享
Dec 04 Python
python3使用SMTP发送HTML格式邮件
Jun 19 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
Oct 15 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
flask 实现上传图片并缩放作为头像的例子
Jan 09 Python
python 装饰器功能与用法案例详解
Mar 06 Python
pycharm工具连接mysql数据库失败问题
Apr 01 Python
Python如何执行系统命令
Sep 23 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
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
ext监听事件方法[初级篇]
2008/04/27 Javascript
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
json的前台操作和后台操作实现代码
2012/01/20 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
2013/04/22 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
2018/02/09 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
JavaScript实现星级评价效果
2019/05/17 Javascript
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
Python实现统计代码行的方法分析
2017/07/12 Python
使用python为mysql实现restful接口
2018/01/05 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
postman传递当前时间戳实例详解
2019/09/14 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
Python yield的用法实例分析
2020/03/06 Python
Python pandas如何向excel添加数据
2020/05/22 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
Pycharm plot独立窗口显示的操作
2020/12/11 Python
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
学生自我鉴定格式及范文
2014/09/16 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
学校师德师风整改措施
2014/10/27 职场文书
单位同意报考证明
2015/06/17 职场文书
如何撰写创业策划书
2019/06/27 职场文书
mysql自增长id用完了该怎么办
2022/02/12 MySQL