pygame实现烟雨蒙蒙下彩虹雨
Python  /  管理员 发布于 5年前   388
学习了一天的深度学习,略有疲惫,我们用pygame搞个小游戏放松放松吧。今天我们的游戏主体是烟雨蒙蒙下彩虹雨,仿佛置身江南水乡。
游戏描述
我们希望看到江南水乡下起彩虹雨。这里背景是江南水乡,烟雨蒙蒙,雨滴颜色五颜六色,大小不一。
解决思路
烟雨蒙蒙彩虹雨的意思很明确,有几个主要元素,那就是烟雨蒙蒙,彩虹雨滴,下雨几个元素和动作。那么,基本思路如下
1.找一张江南水乡烟雨蒙蒙的图片作为背景
2.用圆圈代表雨滴,并把圆圈的大小,颜色进行随机设置,出现五彩斑斓的效果。
3.下雨,即雨滴从上而下持续不断的落下,这就需要pygame里把圆圈放在不同的坐标下绘制出来。
代码实现
具体的实现代码如下:
import pygameimport randompygame.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=50colors=[0]*numberslocation_x=[0]*numberslocation_y=[0]*numberssizes=[0]*numbersspeed=[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()
效果展示
运行可以看到下图,还是有点那个意思的,静静地看着五彩斑斓的雨滴落下,一身的疲惫也减轻了不少。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号