Python+Pygame實現之見縫插針游戲的實現
前言
姥姥說:
炎炎夏日熱浪來襲。
有點讓人無法忍受。。。
一動就是一身汗。。。。。
想玩點小游戲都沒地方玩了。。。
《見縫插針》游戲小程序好玩嗎?《見縫插針》小游戲怎么玩?
只有你想不到,沒有我不會敲代碼的好游戲!「良心好游戲推薦」——栗子同學強勢來襲!
每天都會推薦好玩的小游戲。小編今天推薦這款游戲叫《見縫插針》,這是一個考驗玩家首腦協(xié)調、反應力的小游戲,這種游戲很常見,居然還沒有推薦過!今天趕緊來補上這個類型叭。
(在那種超市或者彩妝店鋪門口經??匆?,話說我從來沒有闖關過呢?。。?/p>
PS:小編有話說
據說見縫插針游戲全世界只有六個人能玩到20關,其實不然,小編10分鐘之內就能玩到19關,
哈哈哈,不吹牛了,具體是什么情況就讓小編來給大家先用代碼制作一款見縫插針的Python小游戲叭!看看你能玩兒到第幾關吖?
《見縫插針》游戲簡介——
關鍵詞:休閑、反應力、協(xié)調性、闖關、操作、技巧。
游戲平臺:Python版本—栗子同學哦
氪金指數:0氪金。
推薦星數:3.5星(滿星5星)
難度星數:4星(滿星5星)
小編簡評:《見縫插針》是一款考驗玩家協(xié)調反應力的闖關小游戲。
?一、運行環(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見縫插針" # 窗口標題 background = Actor('background') # 導入背景圖片 needles = [] # 存放發(fā)射針的列表 startNeedle = Actor('needle',anchor=(170 + 50,1.5)) # 導入針的圖片,并設置錨點(旋轉軸心) startNeedle.x = 220 startNeedle.y = 300 difficulty_Needles = [] # 存放干擾的針 rotateSpeed= 1 # 針旋轉的速度,默認設置為1 score = 8 # 針的數量,默認設置為8 radius = 80 # 圓盤的半徑 record_score = 8 # 記錄針的數量,方便切換關卡 level = 1 # 關卡 record_speed = 1 # 記錄速度 flag = 0 # 設置標志位,來畫干擾的針 r,g,b = random.randint(0,255),random.randint(0,255),random.randint(0,255) # 隨機圓盤的顏色 def draw(): # 繪制模塊,每幀重復執(zhí)行 global flag #全局變量 if not flag: #將干擾的針添加進列表 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("第{}關".format(level),(320,10),fontsize=60,fontname="simhei",color='black') # 顯示關卡 if score < 10: # 顯示分數,這里用判斷語句來區(qū)分一位數和兩位數,位置稍有不同 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(): # 更新模塊,每幀重復執(zhí)行 # 讓針旋轉 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坐標 newNeedle.y = 300 # 新建針的y坐標 for needle in needles: # 判斷發(fā)射針是否碰到其他針,如果碰到就停止轉動 if newNeedle.colliderect(needle): rotateSpeed = 0 music.play_once("失敗") # 失敗音效 needles.append(newNeedle) # 將新創(chuàng)建的針加入列表 if rotateSpeed > 0: score -= 1 # 每發(fā)射一根針的數量就減1 if score == 0: # 當針的數量減到零時,要切換關卡,增加難度 needles.clear() # 清除發(fā)射針列表 record_score += 2 # 針的數量變多 score = record_score level += 1 # 關卡變更 rotateSpeed += 0.5 # 速度加快 record_speed = rotateSpeed flag = 0 # 將標志位置零,重新繪制干擾針 music.play_once('發(fā)射') # 發(fā)射音效 def on_mouse_down(pos, button): # 鼠標檢測 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: # 如果鼠標左鍵按下退出游戲 exit() # 退出游戲 if button == mouse.LEFT and pos[0] > 225 and pos[0] < 335 and pos[1] > 395 and pos[1] < 435: # 如果鼠標左鍵按下再試一次 rotateSpeed = record_speed # 重置速度 needles.clear() # 清空發(fā)射針的列表 score = record_score # 重置針的數量 flag = 0 # 將標志位置零,用于重新繪制干擾針 pgzrun.go() # 開始執(zhí)行游戲
三、效果展示
?總結
玩家需要在合適的時機,在關卡內插完針,大多數關卡都很簡單,9、10、11關、、、等級越高會比越難一點,稍微操作不慎就涼涼了!
到此這篇關于Python+Pygame實現之見縫插針游戲的實現的文章就介紹到這了,更多相關Python Pygame見縫插針內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
用Python爬取LOL所有的英雄信息以及英雄皮膚的示例代碼
這篇文章主要介紹了用Python爬取LOL所有的英雄信息以及英雄皮膚的示例代碼,主要分為兩部分,獲取網頁上數據和圖片保存到本地等,感興趣的可以了解一下2020-07-07