pygame实现烟雨蒙蒙下彩虹雨

 更新时间:2019年11月11日 16:52:34   作者:HelloWorld!  
这篇文章主要为大家详细介绍了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()

效果展示

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

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

相关文章

  • Tensorflow 实现释放内存

    Tensorflow 实现释放内存

    今天小编就为大家分享一篇Tensorflow 实现释放内存,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Django admin实现图书管理系统菜鸟级教程完整实例

    Django admin实现图书管理系统菜鸟级教程完整实例

    这篇文章主要介绍了Django admin实现图书管理系统菜鸟级教程完整实例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 详细解读Python字符串的使用与f-string

    详细解读Python字符串的使用与f-string

    这篇文章主要介绍了详细解读Python字符串的使用与f-string,在 Python 中,引号内的任何内容都是字符串,但是字符串也有很多的用法,需要的朋友一起来看看吧
    2023-04-04
  • python学习之whl文件解释与安装详解

    python学习之whl文件解释与安装详解

    whl格式本质上是一个压缩包,里面包含了py文件,以及经过编译的pyd文件,下面这篇文章主要给大家介绍了关于python学习之whl文件解释与安装的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • Python接口测试之如何使用requests发起请求

    Python接口测试之如何使用requests发起请求

    这篇文章主要介绍了Python接口测试之如何使用requests发起请求问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Python下opencv库的安装过程及问题汇总

    Python下opencv库的安装过程及问题汇总

    本文主要内容是python下opencv库的安装过程,涉及我在安装时遇到的问题,并且,将从网上搜集并试用的一些解决方案进行了简单的汇总,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 解决更改AUTH_USER_MODEL后出现的问题

    解决更改AUTH_USER_MODEL后出现的问题

    这篇文章主要介绍了解决更改AUTH_USER_MODEL后出现的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python selenium实现断言3种方法解析

    Python selenium实现断言3种方法解析

    这篇文章主要介绍了Python selenium实现断言3种方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Python中不同进制的语法及转换方法分析

    Python中不同进制的语法及转换方法分析

    这篇文章主要介绍了Python中不同进制的语法及转换方法,结合实例形式分析了Python不同进制的表示方法及相互转换方法,需要的朋友可以参考下
    2016-07-07
  • 深入浅析python继承问题

    深入浅析python继承问题

    这篇文章主要介绍了深入浅析python继承问题的相关资料,非常不错,感兴趣的朋友一起看看吧
    2016-05-05

最新评论