学习了一天的深度学习,略有疲惫,我们用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代码雨_pygame实现烟雨蒙蒙下彩虹雨相关推荐

  1. python小游戏之-用pygame实现烟雨蒙蒙下彩虹雨

    文章目录 游戏描述 解决思路 代码实现 效果展示 学习了一天的深度学习,略有疲惫,我们用pygame搞个小游戏放松放松吧.今天我们的游戏主体是烟雨蒙蒙下彩虹雨,仿佛置身江南水乡. 游戏描述 我们希望看 ...

  2. python代码根据当前时间获取下一周的日期

    python代码根据当前时间获取下一周的日期 #使用python代码根据当前日期计算下一周的日期范围 import datetime,calendar import pandas as pddef g ...

  3. 翻译python代码的软件_Linux环境下的Python翻译工具源码

    玩蛇网Python教程源码示例,本文源码是用于Linux环境下的Python翻译工具源码详解. 学习计算机编程语言一定会涉及到英文和学习应用,但通常英语词典在Linux环境下都不如Win环境下的好用. ...

  4. html canvas爱心雨,canvas实现爱心和彩虹雨的效果

    本文主要介绍了canvas实现爱心和彩虹雨效果的实例,具有很好的参考价值.下面一起来看下吧 效果图: 代码如下: var canvas = document.getElementById('canva ...

  5. 数据处理-500行Python代码处理ave/chunk命令下1d和2d分块数据

    文章目录 资源地址 注意事项 流程图示 使用说明 资源地址 lammps-data-processing 该仓库目前的README文档及老一版本的Python脚本写的并不规范,后期不定时更新修改,该仓 ...

  6. 用html语言编写彩虹雨流动代码,前端H5 canvas 爱心和彩虹雨

    /p> var canvas = document.getElementById('canvas'), ctx = canvas.getContext('2d'), canvasW = canv ...

  7. python代码打好了怎么运行-python代码是怎样运行的

    python作为一种动态语言,其实是一个解释器软件包.当Python运行脚本时,在代码开始进行处理之前,Python还会执行一些步骤.第一步是编译成所谓的"字节码",如果Pytho ...

  8. python代码怎么运行-python代码是怎样运行的

    python作为一种动态语言,其实是一个解释器软件包.当Python运行脚本时,在代码开始进行处理之前,Python还会执行一些步骤.第一步是编译成所谓的"字节码",如果Pytho ...

  9. python代码写好了怎么运行-python代码是怎样运行的

    python作为一种动态语言,其实是一个解释器软件包.当Python运行脚本时,在代码开始进行处理之前,Python还会执行一些步骤.第一步是编译成所谓的"字节码",如果Pytho ...

最新文章

  1. [流水账]毕业?工作?
  2. python 是什么类型的语言-python到底是什么类型的语言
  3. [Skill]-Markdown编辑器技巧
  4. 获取标签的src属性兼容性
  5. vb excel编程实例_用过程和函数来解决VB中的计算问题
  6. ASP.NET 2.0 学习笔记 1: session 与 script 应用
  7. pip install mysql-connector 安装出错
  8. php函数积累第二弹(关于文件操作)
  9. 第1章 网站与网站的建设过程
  10. 携程状告去哪儿一案有猫腻
  11. 计算机如何实现截长图功能,只会Ctrl+Alt+A?告诉你电脑截长图的5大方法
  12. 等价类划分测试—身份证
  13. 小马哥----高仿机部分6735芯片机型的root方法浅析 高仿三星Galaxy S6 A228_4G刷机root
  14. win10计算机远程连接命令,详细教你win10设置远程桌面连接命令
  15. 角度逼近圆弧插补法插补与仿真
  16. 在houdini里,怎么手动设置输出物体的红绿蓝通道,便于nuke调节使用(基础篇)
  17. STM32CubeMX学习笔记(25)——FatFs文件系统使用(操作SPI Flash)
  18. 创业者回忆和乔布斯谈判:说错一个字就被臭骂拉黑
  19. version magic ‘5.15.0 SMP mod_unload aarch64‘ should be ‘5.15.0-xilinx-v2022.2 SMP mod_unload aarch6
  20. tinymce怎么去掉POWERED BY TINY

热门文章

  1. opencv中cvSetCaptureProperty定位不准的原因及解决(转载)
  2. Java中的线程协作之Condition
  3. 每天一个Linux命令-cat
  4. 饶军:Apache Kafka的过去,现在,和未来 1
  5. 灌水导论——灌水法初步
  6. 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载)...
  7. 软考信息系统项目管理师_信息系统综合测试与管理---软考高级之信息系统项目管理师027
  8. Netty工作笔记0029---NIO 网络编程应用--群聊系统4--客户端编写2
  9. security工作笔记008---springBoot springCloud中的security配置全解
  10. System学习笔记003---Windows把内存变成快速虚拟硬盘