一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

pygame如何实现烟雨蒙蒙下彩虹雨 pygame实现烟雨蒙蒙下彩虹雨实例

时间:2019-11-12 编辑:袖梨 来源:一聚教程网

本篇文章小编给大家分享一下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()

效果展示

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

热门栏目