Python+Pygame實(shí)現(xiàn)之見(jiàn)縫插針游戲的實(shí)現(xiàn)
前言
姥姥說(shuō):
炎炎夏日熱浪來(lái)襲。
有點(diǎn)讓人無(wú)法忍受。。。
一動(dòng)就是一身汗。。。。。
想玩點(diǎn)小游戲都沒(méi)地方玩了。。。
《見(jiàn)縫插針》游戲小程序好玩嗎?《見(jiàn)縫插針》小游戲怎么玩?
只有你想不到,沒(méi)有我不會(huì)敲代碼的好游戲!「良心好游戲推薦」——栗子同學(xué)強(qiáng)勢(shì)來(lái)襲!
每天都會(huì)推薦好玩的小游戲。小編今天推薦這款游戲叫《見(jiàn)縫插針》,這是一個(gè)考驗(yàn)玩家首腦協(xié)調(diào)、反應(yīng)力的小游戲,這種游戲很常見(jiàn),居然還沒(méi)有推薦過(guò)!今天趕緊來(lái)補(bǔ)上這個(gè)類(lèi)型叭。
(在那種超市或者彩妝店鋪門(mén)口經(jīng)??匆?jiàn),話(huà)說(shuō)我從來(lái)沒(méi)有闖關(guān)過(guò)呢?。。?/p>
PS:小編有話(huà)說(shuō)
據(jù)說(shuō)見(jiàn)縫插針游戲全世界只有六個(gè)人能玩到20關(guān),其實(shí)不然,小編10分鐘之內(nèi)就能玩到19關(guān),
哈哈哈,不吹牛了,具體是什么情況就讓小編來(lái)給大家先用代碼制作一款見(jiàn)縫插針的Python小游戲叭!看看你能玩兒到第幾關(guān)吖?
《見(jiàn)縫插針》游戲簡(jiǎn)介——
關(guān)鍵詞:休閑、反應(yīng)力、協(xié)調(diào)性、闖關(guān)、操作、技巧。
游戲平臺(tái):Python版本—栗子同學(xué)哦
氪金指數(shù):0氪金。
推薦星數(shù):3.5星(滿(mǎn)星5星)
難度星數(shù):4星(滿(mǎn)星5星)
小編簡(jiǎn)評(píng):《見(jiàn)縫插針》是一款考驗(yàn)玩家協(xié)調(diào)反應(yīng)力的闖關(guān)小游戲。
?一、運(yùn)行環(huán)境
1)環(huán)境安裝
Python3、 Pycharm 、Pygame、pgzero、numpy。部分自帶模塊就不展示啦。
第三方庫(kù)的安裝:pip install pygame 或者 帶鏡像源
pip install -i https://pypi.douban.com/simple/ +模塊名
2)素材(圖片、音樂(lè)等)
可自行選擇喜歡的圖片,背景音樂(lè)等等。圖片需要放在images文件夾中,音頻放在music文件夾中。images和music文件夾需要和新建的py文件放在同一級(jí) 。
二、代碼展示
import pgzrun import random TITLE = "Python見(jiàn)縫插針" # 窗口標(biāo)題 background = Actor('background') # 導(dǎo)入背景圖片 needles = [] # 存放發(fā)射針的列表 startNeedle = Actor('needle',anchor=(170 + 50,1.5)) # 導(dǎo)入針的圖片,并設(shè)置錨點(diǎn)(旋轉(zhuǎn)軸心) startNeedle.x = 220 startNeedle.y = 300 difficulty_Needles = [] # 存放干擾的針 rotateSpeed= 1 # 針旋轉(zhuǎn)的速度,默認(rèn)設(shè)置為1 score = 8 # 針的數(shù)量,默認(rèn)設(shè)置為8 radius = 80 # 圓盤(pán)的半徑 record_score = 8 # 記錄針的數(shù)量,方便切換關(guān)卡 level = 1 # 關(guān)卡 record_speed = 1 # 記錄速度 flag = 0 # 設(shè)置標(biāo)志位,來(lái)畫(huà)干擾的針 r,g,b = random.randint(0,255),random.randint(0,255),random.randint(0,255) # 隨機(jī)圓盤(pán)的顏色 def draw(): # 繪制模塊,每幀重復(fù)執(zhí)行 global flag #全局變量 if not flag: #將干擾的針添加進(jìn)列表 for i in range(int(rotateSpeed)+3): difficulty_Needle2 = Actor('needle', anchor=(170 + 50, 1.5)) difficulty_Needle2.angle = (360 / (int(rotateSpeed) + 2)) * i difficulty_Needle2.x = 400 difficulty_Needle2.y = 300 needles.append(difficulty_Needle2) if rotateSpeed != 0: flag = 1 screen.fill('white') # 白色背景 screen.draw.filled_circle((400,300),radius,(r,g,b)) # 畫(huà)圓盤(pán) screen.draw.text("第{}關(guān)".format(level),(320,10),fontsize=60,fontname="simhei",color='black') # 顯示關(guān)卡 if score < 10: # 顯示分?jǐn)?shù),這里用判斷語(yǔ)句來(lái)區(qū)分一位數(shù)和兩位數(shù),位置稍有不同 screen.draw.text(str(score), (385, 275), fontsize=80, color='white') else: screen.draw.text(str(score), (370, 275), fontsize=80, color='white') screen.draw.text("Speed : {}".format(rotateSpeed), (20, 270), fontsize=35, color='red') # 顯示速度 startNeedle.draw() # 畫(huà)初始的針 for difficulty_Needle in difficulty_Needles: # 循環(huán)遍歷畫(huà)出干擾的針 difficulty_Needle.draw() for needle in needles: # 循環(huán)遍歷畫(huà)出發(fā)射出去的針 needle.draw() else: # 失敗后的場(chǎng)景 screen.clear() # 清屏 background.draw() # 畫(huà)背景 screen.draw.text('Game Over!', (200, 200), fontsize=100, color='red') # 畫(huà)文本 screen.draw.text('再試一次', (230, 400), fontsize=25, fontname="simhei", color='green') screen.draw.text('退出游戲', (450, 400), fontsize=25, fontname="simhei", color='green') def update(): # 更新模塊,每幀重復(fù)執(zhí)行 # 讓針旋轉(zhuǎn) for needle in needles: needle.angle += rotateSpeed for difficulty_Needle in difficulty_Needles: difficulty_Needle.angle += rotateSpeed def on_key_down(): # 按鍵檢測(cè) global rotateSpeed,score,level,record_score,record_speed,flag # 全局變量 newNeedle = Actor('needle', anchor=(170 + 50, 1.5)) # 新建一根針 newNeedle.x = 400 # 新建針的x坐標(biāo) newNeedle.y = 300 # 新建針的y坐標(biāo) for needle in needles: # 判斷發(fā)射針是否碰到其他針,如果碰到就停止轉(zhuǎn)動(dòng) if newNeedle.colliderect(needle): rotateSpeed = 0 music.play_once("失敗") # 失敗音效 needles.append(newNeedle) # 將新創(chuàng)建的針加入列表 if rotateSpeed > 0: score -= 1 # 每發(fā)射一根針的數(shù)量就減1 if score == 0: # 當(dāng)針的數(shù)量減到零時(shí),要切換關(guān)卡,增加難度 needles.clear() # 清除發(fā)射針列表 record_score += 2 # 針的數(shù)量變多 score = record_score level += 1 # 關(guān)卡變更 rotateSpeed += 0.5 # 速度加快 record_speed = rotateSpeed flag = 0 # 將標(biāo)志位置零,重新繪制干擾針 music.play_once('發(fā)射') # 發(fā)射音效 def on_mouse_down(pos, button): # 鼠標(biāo)檢測(cè) global rotateSpeed,record_speed,score,flag # 全局變量 if button == mouse.LEFT and pos[0] > 445 and pos[0] < 555 and pos[1] > 395 and pos[1] < 435: # 如果鼠標(biāo)左鍵按下退出游戲 exit() # 退出游戲 if button == mouse.LEFT and pos[0] > 225 and pos[0] < 335 and pos[1] > 395 and pos[1] < 435: # 如果鼠標(biāo)左鍵按下再試一次 rotateSpeed = record_speed # 重置速度 needles.clear() # 清空發(fā)射針的列表 score = record_score # 重置針的數(shù)量 flag = 0 # 將標(biāo)志位置零,用于重新繪制干擾針 pgzrun.go() # 開(kāi)始執(zhí)行游戲
三、效果展示
?總結(jié)
玩家需要在合適的時(shí)機(jī),在關(guān)卡內(nèi)插完針,大多數(shù)關(guān)卡都很簡(jiǎn)單,9、10、11關(guān)、、、等級(jí)越高會(huì)比越難一點(diǎn),稍微操作不慎就涼涼了!
到此這篇關(guān)于Python+Pygame實(shí)現(xiàn)之見(jiàn)縫插針游戲的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python Pygame見(jiàn)縫插針內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python爬蟲(chóng)進(jìn)階之協(xié)程詳解
這篇文章主要介紹了python爬蟲(chóng)進(jìn)階之協(xié)程詳解,coroutine中文翻譯叫協(xié)程,在 Python 中昌指代為協(xié)程對(duì)象類(lèi)型,可以將協(xié)程對(duì)象注冊(cè)到時(shí)間循環(huán)中被調(diào)用,需要的朋友可以參考下2023-08-08用Python爬取LOL所有的英雄信息以及英雄皮膚的示例代碼
這篇文章主要介紹了用Python爬取LOL所有的英雄信息以及英雄皮膚的示例代碼,主要分為兩部分,獲取網(wǎng)頁(yè)上數(shù)據(jù)和圖片保存到本地等,感興趣的可以了解一下2020-07-07升級(jí)anaconda中python到3.10版本的簡(jiǎn)單步驟
anaconda是一個(gè)非常好用的python發(fā)行版本,其中包含了大部分常用的庫(kù),下面這篇文章主要給大家介紹了關(guān)于升級(jí)anaconda中python到3.10版本的簡(jiǎn)單步驟,需要的朋友可以參考下2024-03-03Python 最強(qiáng)編輯器詳細(xì)使用指南(PyCharm )
這篇文章主要介紹了Python 最強(qiáng)編輯器詳細(xì)使用指南(PyCharm),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09python實(shí)現(xiàn)局域網(wǎng)內(nèi)實(shí)時(shí)通信代碼
今天小編就為大家分享一篇python實(shí)現(xiàn)局域網(wǎng)內(nèi)實(shí)時(shí)通信代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12自動(dòng)化測(cè)試時(shí)基于Python常用的幾個(gè)加密算法總結(jié)
這幾天做自動(dòng)化測(cè)試,遇到一個(gè)問(wèn)題,那就是接口的請(qǐng)求的密碼是加密的,產(chǎn)品的要求是不能使用使用其他特殊手段,他給提供加密算法,需要在接口請(qǐng)求的時(shí)候,使用加密算法處理后的數(shù)據(jù)傳參,本文主要是整理了幾個(gè)加密算法,以便后續(xù)測(cè)試使用,需要的朋友可以參考下2023-12-12