Python實(shí)現(xiàn)敲擊木魚積累功德小項(xiàng)目
前言:前幾天上課閑著沒事寫了一個(gè)python敲擊木魚積累功德的小項(xiàng)目,當(dāng)時(shí)純粹就是寫著玩,回顧一下鼠標(biāo)事件的東西還記不記得,發(fā)現(xiàn)這個(gè)博客的點(diǎn)贊和收藏量還挺高的,我當(dāng)時(shí)也沒有把它當(dāng)回事,后面也有很多人問怎么實(shí)現(xiàn)的,想讓我再添加一些其他功能!
隨著點(diǎn)贊量和關(guān)注量不斷增高,我又重新看了一下博客,感覺過于簡單了,實(shí)在不配當(dāng)當(dāng)時(shí)python熱榜的第一,所以我又把代碼給稍微大改了一下,在原來總體實(shí)現(xiàn)的基礎(chǔ)上添加了如下功能!
我們先看原來的效果:
1:實(shí)現(xiàn)了點(diǎn)擊鼠標(biāo)會(huì)彈出切換功德+1的surface界面,鼠標(biāo)松開回復(fù)原先界面!
2:隨著鼠標(biāo)按鍵的按下同時(shí)也會(huì)伴隨木魚敲擊的空靈的聲音!
本次更新之后的功能有:
1:點(diǎn)擊鼠標(biāo)按鍵會(huì)出現(xiàn)功德+1和累計(jì)敲擊多少次,積累了多少功德的新畫面
2:優(yōu)化了聲音的play,降噪處理!
3:增加較強(qiáng)的互動(dòng)性能,在不斷的積累功德的過程中,會(huì)不定時(shí)隨機(jī)出現(xiàn)意想不到的的互動(dòng)效果,極大程度增加了該程序的趣味性!
ps:下次更新可能會(huì)在半個(gè)月后了,屆時(shí)會(huì)使用tk的模塊添加登錄注冊(cè),以及網(wǎng)絡(luò)編程的使用用戶功德的統(tǒng)計(jì)排行榜!最近期末,還請(qǐng)諒解!
好了,話不多說,直接上代碼:
import pygame from locale import * pygame.init() pygame.mixer.init() screen=pygame.display.set_mode((700,500)) pygame.display.set_caption("木魚功德") img1=pygame.image.load("images/muyuluck1.jpg") # img2=pygame.image.load("images/muyulucky2.png") img2=pygame.image.load("images/zan.jpg") img3=pygame.image.load("images/qw.png") rect1=img1.get_rect() muyulucky = pygame.mixer.Sound('sound/muyu.WAV') muyulucky.set_volume(0.4) if pygame.mouse.get_focused(): # 獲取光標(biāo)位置,2個(gè)值 ball_x, ball_y = pygame.mouse.get_pos() screen.blit(img1, (-180, -100)) count=0 f = pygame.font.SysFont('華文楷體',50) f1 = pygame.font.SysFont('華文楷體',30) # 生成文本信息,第一個(gè)參數(shù)文本內(nèi)容;第二個(gè)參數(shù),字體是否平滑; # 第三個(gè)參數(shù),RGB模式的字體顏色;第四個(gè)參數(shù),RGB模式字體背景顏色; # text = f.render("功德+1",True,(255,0,0),(0,0,0)) # text1=f1.render("今日積累功德"+str(count)+"次",True,(255,0,0),(0,0,0)) #獲得顯示對(duì)象的rect區(qū)域坐標(biāo) # textRect =text.get_rect() # text1Rect =text1.get_rect() # 設(shè)置顯示對(duì)象居中 # textRect.topleft = (30,30) # text1Rect.topleft = (450,30) flag = False while True: for event in pygame.event.get(): if pygame.Rect.collidepoint(rect1, (ball_x, ball_y)) and event.type==pygame.MOUSEBUTTONDOWN: muyulucky.play() flag=True count = count + 1 text = f.render("功德+1", True, (255, 0, 0), (0, 0, 0)) textRect = text.get_rect() textRect.topleft = (30, 30) text1 = f1.render("今日積累功德" + str(count) + "次", True, (255, 0, 0), (0, 0, 0)) text1Rect = text1.get_rect() text1Rect.topleft = (450, 30) screen.blit(text1, text1Rect) screen.blit(text,textRect) if count==8: f2 = pygame.font.SysFont("華文楷體", 25) text2 = f2.render("今日積累功德8次,去表白應(yīng)該不會(huì)被拒絕太難堪哦", True, (255, 0, 20)) text2Rect = text.get_rect() text2Rect.topleft = (60, 150) screen.blit(text2, text2Rect) if count==10: text = f.render("功德+1", True, (255, 0, 0), (0, 0, 0)) textRect = text.get_rect() textRect.topleft = (30, 30) text1 = f1.render("今日積累功德" + str(count) + "次", True, (255, 0, 0)) text1Rect = text1.get_rect() text1Rect.topleft = (450, 30) screen.blit(img1, (-180, -100)) screen.blit(text1, text1Rect) screen.blit(text, textRect) if count==20: f2 = pygame.font.SysFont("華文楷體", 25) text3 = f2.render("手速這么快干嘛,這是敲木魚積功德,不是你dfj", True, (230, 90, 80)) text3Rect = text.get_rect() text3Rect.topleft = (60, 150) screen.blit(text3, text3Rect) if count==22: text = f.render("功德+1", True, (255, 0, 0), (0, 0, 0)) textRect = text.get_rect() textRect.topleft = (30, 30) text1 = f1.render("今日積累功德" + str(count) + "次", True, (255, 0, 0), (0, 0, 0)) text1Rect = text1.get_rect() text1Rect.topleft = (450, 30) screen.blit(img1, (-180, -100)) screen.blit(text1, text1Rect) screen.blit(text, textRect) if count==28: f2 = pygame.font.SysFont("華文楷體", 25) text3 = f2.render("tmd,我看你不是敲木魚,是泄火吧", True, (255, 200, 20)) text3Rect = text.get_rect() text3Rect.topleft = (60, 150) screen.blit(text3, text3Rect) if count==30: text = f.render("功德+1", True, (255, 0, 0), (0, 0, 0)) textRect = text.get_rect() textRect.topleft = (30, 30) text1 = f1.render("今日積累功德" + str(count) + "次", True, (255, 0, 0), (0, 0, 0)) text1Rect = text1.get_rect() text1Rect.topleft = (450, 30) screen.blit(img1, (-180, -100)) screen.blit(text1, text1Rect) screen.blit(text, textRect) if count==40: screen.blit(img2, (-210,10)) if count==41: text = f.render("功德+1", True, (255, 0, 0), (0, 0, 0)) textRect = text.get_rect() textRect.topleft = (30, 30) text1 = f1.render("今日積累功德" + str(count) + "次", True, (255, 0, 0), (0, 0, 0)) text1Rect = text1.get_rect() text1Rect.topleft = (450, 30) screen.blit(img1, (-180, -100)) screen.blit(text1, text1Rect) screen.blit(text, textRect) if count==50: f2 = pygame.font.SysFont("華文楷體", 25) text3 = f2.render("今日功德累計(jì)50次了,小熊后臺(tái)獎(jiǎng)勵(lì)你一只女朋友!", True, (255, 0, 0)) text3Rect = text.get_rect() text3Rect.topleft = (60, 150) screen.blit(text3, text3Rect) screen.blit(img3, (-300, 0)) if count==51: text = f.render("功德+1", True, (255, 0, 0), (0, 0, 0)) textRect = text.get_rect() textRect.topleft = (30, 30) text1 = f1.render("今日積累功德" + str(count) + "次", True, (255, 0, 0), (0, 0, 0)) text1Rect = text1.get_rect() text1Rect.topleft = (450, 30) screen.blit(img1, (-180, -100)) screen.blit(text1, text1Rect) screen.blit(text, textRect) pygame.display.flip() if pygame.Rect.collidepoint(rect1, (ball_x, ball_y)) and event.type==pygame.MOUSEBUTTONUP: flag = False text = f.render("功德+1", True, (0, 0, 0), (0, 0, 0)) textRect = text.get_rect() textRect.topleft = (30, 30) screen.blit(text, textRect) if count==40: screen.blit(img2, (-210, 10)) if count==50: f2 = pygame.font.SysFont("華文楷體", 25) text3 = f2.render("功德積累是好事,凡事有個(gè)度!", True, (255, 0, 0)) text4 = f2.render("小熊后臺(tái)檢測到你今日功德累計(jì)50次,看張照片放松一下吧??!", True, (255, 0, 0)) text3Rect = text.get_rect() text4Rect = text.get_rect() text3Rect.topleft = (60, 150) text4Rect.topleft = (0, 180) screen.blit(img3, (-300, 0)) screen.blit(text3, text3Rect) screen.blit(text4, text4Rect) pygame.display.flip() if event.type==pygame.QUIT: import mouse pygame.quit() pygame.display.flip()
截圖:
到此這篇關(guān)于Python實(shí)現(xiàn)敲擊木魚積累功德小項(xiàng)目的文章就介紹到這了,更多相關(guān)Python敲擊木魚內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中使用smtplib和email模塊發(fā)送郵件實(shí)例
python腳本發(fā)郵件,一般會(huì)用到smtplib和email這兩個(gè)模塊??纯丛撃K怎么使用,先看smtplib模塊。 smtplib模塊定義了一個(gè)簡單的SMTP客戶端,可以用來在互聯(lián)網(wǎng)上發(fā)送郵件2014-04-04tensorflow求導(dǎo)和梯度計(jì)算實(shí)例
今天小編就為大家分享一篇tensorflow求導(dǎo)和梯度計(jì)算實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01對(duì)python調(diào)用RPC接口的實(shí)例詳解
今天小編就為大家分享一篇對(duì)python調(diào)用RPC接口的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01python支持同時(shí)存在多個(gè)版本的操作步驟
這篇文章主要介紹了python支持同時(shí)存在多個(gè)版本的操作步驟,在已有Python 3.8的情況下,安裝新的Python 3.9版本,感興趣的小伙伴可以參考文中步驟,文章中介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03教你利用PyTorch實(shí)現(xiàn)sin函數(shù)模擬
這篇文章主要給大家介紹了關(guān)于教你利用PyTorch實(shí)現(xiàn)sin函數(shù)模擬的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01