小編寫這篇文章的主要目的,是給大家介紹下,關(guān)于Python+Pygame,這一見縫插針游戲?qū)嵙?xí)的途徑,下面是具體的代碼實例,希望可以給各位讀者帶來幫助。
前言:
奶奶說:
這個夏天真的是有點熱啊。
熱的簡直讓人無法忍受。。。
身體一動就會出汗。。。。。
想玩點小游戲都沒地方玩了。。。
《見縫插針》這個游戲好玩嗎?《見縫插針》它到底怎么玩呢?
只要是你能想到的,這些游戲代碼,我統(tǒng)統(tǒng)都會敲!「良心好游戲推薦」——栗子同學(xué)強勢來襲!
每天都會推薦好玩的小游戲。小編今天推薦這款游戲叫《見縫插針》,這是一個考驗玩家首腦協(xié)調(diào)、反應(yīng)力的小游戲,這種游戲很常見,居然還沒有推薦過!今天趕緊來補上這個類型叭。
?。ㄔ谀欠N超市或者彩妝店鋪門口經(jīng)??匆?,話說我從來沒有闖關(guān)過呢!?。?/p>
PS:小編有話說
據(jù)說見縫插針游戲全世界只有六個人能玩到20關(guān),其實不然,小編10分鐘之內(nèi)就能玩到19關(guān),
哈哈哈,不吹牛了,具體是什么情況就讓小編來給大家先用代碼制作一款見縫插針的Python小游戲叭!看看你能玩兒到第幾關(guān)吖?
《見縫插針》游戲簡介——
關(guān)鍵詞:休閑、反應(yīng)力、協(xié)調(diào)性、闖關(guān)、操作、技巧。
游戲平臺:Python版本—栗子同學(xué)哦
氪金指數(shù):0氪金。
推薦星數(shù):3.5星(滿星5星)
難度星數(shù):4星(滿星5星)
小編簡評:《見縫插針》是一款考驗玩家協(xié)調(diào)反應(yīng)力的闖關(guān)小游戲。
一、運行環(huán)境
1)環(huán)境安裝
Python3、Pycharm、Pygame、pgzero、numpy。部分自帶模塊就不展示啦。
第三方庫的安裝:pip install pygame或者帶鏡像源
pip install-i https://pypi.douban.com/simple/+模塊名
2)素材(圖片、音樂等)
可自行選擇喜歡的圖片,背景音樂等等。圖片需要放在images文件夾中,音頻放在music文件夾中。images和music文件夾需要和新建的py文件放在同一級。
二、代碼展示
import pgzrun import random TITLE="Python見縫插針"#窗口標(biāo)題 background=Actor('background')#導(dǎo)入背景圖片 needles=[]#存放發(fā)射針的列表 startNeedle=Actor('needle',anchor=(170+50,1.5))#導(dǎo)入針的圖片,并設(shè)置錨點(旋轉(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#圓盤的半徑 record_score=8#記錄針的數(shù)量,方便切換關(guān)卡 level=1#關(guān)卡 record_speed=1#記錄速度 flag=0#設(shè)置標(biāo)志位,來畫干擾的針 r,g,b=random.randint(0,255),random.randint(0,255),random.randint(0,255)#隨機(jī)圓盤的顏色 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))#畫圓盤 screen.draw.text("第{}關(guān)".format(level),(320,10),fontsize=60,fontname="simhei",color='black')#顯示關(guān)卡 if score<10:#顯示分?jǐn)?shù),這里用判斷語句來區(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()#畫初始的針 for difficulty_Needle in difficulty_Needles:#循環(huán)遍歷畫出干擾的針 difficulty_Needle.draw() for needle in needles:#循環(huán)遍歷畫出發(fā)射出去的針 needle.draw() else:#失敗后的場景 screen.clear()#清屏 background.draw()#畫背景 screen.draw.text('Game Over!',(200,200),fontsize=100,color='red')#畫文本 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():#按鍵檢測 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)動 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ù)量減到零時,要切換關(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)檢測 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()#開始執(zhí)行游戲
三、效果展示
總結(jié)
玩家需要在合適的時機(jī),在關(guān)卡內(nèi)插完針,大多數(shù)關(guān)卡都很簡單,9、10、11關(guān)、、、等級越高會比越難一點,稍微操作不慎就涼涼了!
到此這篇關(guān)于Python+Pygame實現(xiàn)之見縫插針游戲的實現(xiàn)的文章就介紹到這了,希望可以給各位讀者帶來更多的幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/127774.html
作者:海擁 主頁:https://haiyong.blog.csdn.net/ ? Pygame是一組跨平臺的 Python 模塊,專為編寫視頻游戲而設(shè)計。它包括旨在與 Python 編程語言一起使用的計算機(jī)圖形和聲音庫。您可以使用 pygame 創(chuàng)建不同類型的游戲,包括街機(jī)游戲、平臺游戲等等。 使用的圖像: ?你可以控制玩家的移動。為此,首先使用 pygame 的 display.set...
pygame模塊是一個可以跨平臺的模塊,主要就是作為游戲開發(fā)來進(jìn)行使用的,那么,怎么才能夠?qū)崿F(xiàn)其游戲開發(fā)的技能了?比如說,怎么實現(xiàn)使用pygame去實現(xiàn)拼圖的游戲呢?下面就給大家詳細(xì)解答下?! ygame介紹 Python Pygame是一款專門為開發(fā)和設(shè)計2D電子游戲而生的軟件包,它支Windows、Linux、Mac OS等操作系統(tǒng),具有良好的跨平臺性。Pygame由Pete Shin...
Python pygame作為一門常見的技能,其實,它的應(yīng)用范圍還是比較的廣泛的,那么,它是怎么實現(xiàn)其拼圖游戲呢?下面就以案例的形式,去給大家做個解答,下面就給大家詳細(xì)解答下。 pygame介紹 Python Pygame是一款專門為開發(fā)和設(shè)計2D電子游戲而生的軟件包,它支Windows、Linux、Mac OS等操作系統(tǒng),具有良好的跨平臺性。Pygame由Pete Shinners于20...
摘要:和標(biāo)志,用于表示飛船是否正在移動,用于實現(xiàn)飛船在不松開按鍵下連續(xù)移動。重寫了函數(shù),用于繪制飛船模塊該模塊主要是集中處理游戲中發(fā)生的各種事件。函數(shù)用于監(jiān)聽游戲的事件,比如,它表示游戲推出事件和分別表示鍵盤按下與松開事件。 《Python編程:從入門到實踐》筆記。本章主要學(xué)習(xí)如何使用pygame編寫一個簡單的小飛機(jī)打外星人的游戲,由于本人對用python寫游戲并不是特別感興趣,所以主要是看...
摘要:物網(wǎng)王璞劼理工大富翁基于的一個大富翁游戲游戲地圖為自己使用各種網(wǎng)絡(luò)素材制作各種按鈕和選項,小圖標(biāo)等也是使用制作。玩家在大富翁的主要操作是投擲骰子,由隨機(jī)函數(shù)進(jìn)行判定然后進(jìn)行移動,進(jìn)行位置判斷,然后開始進(jìn)行相關(guān)的判定。 本文實例為大家分享了python版大富翁游戲的具體代碼,供大家參考,具體內(nèi)容如下 # -*- coding: utf-8 -*- 在學(xué)習(xí)過程中有什么不懂得可以加我...
閱讀 928·2023-01-14 11:38
閱讀 902·2023-01-14 11:04
閱讀 759·2023-01-14 10:48
閱讀 2065·2023-01-14 10:34
閱讀 968·2023-01-14 10:24
閱讀 844·2023-01-14 10:18
閱讀 512·2023-01-14 10:09
閱讀 591·2023-01-14 10:02