pygame實(shí)現(xiàn)煙雨蒙蒙下彩虹雨
學(xué)習(xí)了一天的深度學(xué)習(xí),略有疲憊,我們用pygame搞個(gè)小游戲放松放松吧。今天我們的游戲主體是煙雨蒙蒙下彩虹雨,仿佛置身江南水鄉(xiāng)。
游戲描述
我們希望看到江南水鄉(xiāng)下起彩虹雨。這里背景是江南水鄉(xiāng),煙雨蒙蒙,雨滴顏色五顏六色,大小不一。
解決思路
煙雨蒙蒙彩虹雨的意思很明確,有幾個(gè)主要元素,那就是煙雨蒙蒙,彩虹雨滴,下雨幾個(gè)元素和動(dòng)作。那么,基本思路如下
1.找一張江南水鄉(xiāng)煙雨蒙蒙的圖片作為背景
2.用圓圈代表雨滴,并把圓圈的大小,顏色進(jìn)行隨機(jī)設(shè)置,出現(xiàn)五彩斑斕的效果。
3.下雨,即雨滴從上而下持續(xù)不斷的落下,這就需要pygame里把圓圈放在不同的坐標(biāo)下繪制出來。
代碼實(shí)現(xiàn)
具體的實(shí)現(xiàn)代碼如下:
import pygame import random pygame.init() #加載圖片 pic=pygame.image.load('raining.jpg') #獲取圖片的長(zhǎng)寬 screen_width=pic.get_width() screen_height=pic.get_height() #根據(jù)圖片大小來設(shè)置屏幕大小 screen=pygame.display.set_mode([screen_width,screen_height]) #設(shè)置彩虹雨的雨滴個(gè)數(shù),顏色,位置,大小,落下的速度 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實(shí)現(xiàn)來控制動(dòng)畫的速度 timer=pygame.time.Clock() while keep_going: for event in pygame.event.get(): #監(jiān)聽事件 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 #重新設(shè)置雨滴的參數(shù) 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()
效果展示
運(yùn)行可以看到下圖,還是有點(diǎn)那個(gè)意思的,靜靜地看著五彩斑斕的雨滴落下,一身的疲憊也減輕了不少。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Tensorflow 實(shí)現(xiàn)釋放內(nèi)存
今天小編就為大家分享一篇Tensorflow 實(shí)現(xiàn)釋放內(nèi)存,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02Django admin實(shí)現(xiàn)圖書管理系統(tǒng)菜鳥級(jí)教程完整實(shí)例
這篇文章主要介紹了Django admin實(shí)現(xiàn)圖書管理系統(tǒng)菜鳥級(jí)教程完整實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12python學(xué)習(xí)之whl文件解釋與安裝詳解
whl格式本質(zhì)上是一個(gè)壓縮包,里面包含了py文件,以及經(jīng)過編譯的pyd文件,下面這篇文章主要給大家介紹了關(guān)于python學(xué)習(xí)之whl文件解釋與安裝的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09Python接口測(cè)試之如何使用requests發(fā)起請(qǐng)求
這篇文章主要介紹了Python接口測(cè)試之如何使用requests發(fā)起請(qǐng)求問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06解決更改AUTH_USER_MODEL后出現(xiàn)的問題
這篇文章主要介紹了解決更改AUTH_USER_MODEL后出現(xiàn)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python selenium實(shí)現(xiàn)斷言3種方法解析
這篇文章主要介紹了Python selenium實(shí)現(xiàn)斷言3種方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Python中不同進(jìn)制的語(yǔ)法及轉(zhuǎn)換方法分析
這篇文章主要介紹了Python中不同進(jìn)制的語(yǔ)法及轉(zhuǎn)換方法,結(jié)合實(shí)例形式分析了Python不同進(jìn)制的表示方法及相互轉(zhuǎn)換方法,需要的朋友可以參考下2016-07-07