準備工作:開發工具
Python版本:3.6.4
相關模塊:
cocos2d模塊;
pyaudio模塊;
以及一些Python自帶的模塊。
環境搭建
安裝Python並添加到環境變量,pip安裝需要的相關模塊即可。
原理介紹
相信很多人對八音符這款遊戲並不陌生吧,其核心玩法是利用聲音控制一個帶辮子的小黑球不斷前進,大概是長這樣子的吧:
今天我們就來做一個低配版本的T_T,其功能爲利用聲音控制皮卡丘不斷前進。
遊戲主要使用了cocos2d模塊和pyaudio模塊,前者用於搭建遊戲框架,後者用於獲得麥克風的聲音。
Step1 定義皮卡丘類:
既然遊戲的主角是皮卡丘,那我們總得單獨定義一個類來體現一下主角吧?
利用cocos2d模塊來定義主角類是一件非常輕鬆的事情。你只需要繼承sprites類,然後告訴sprites類需要執行什麼操作即可。
根據八音符的遊戲規則,我們賦予皮卡丘跳躍、下降和靜止的能力,同時,我們規定皮卡丘在空中時無法進行跳躍。具體代碼如下:
Step2 定義block類:
顯然,主角需要有站的地方吧TT,到處都是萬丈深淵怕是一萬隻皮卡丘也拯救不了地球人吧TT。
對於地面,剛開始的時候先得有一段長點的平地緩衝一下,讓玩家先試試自己的嗓音,然後再隨機生成跳躍塊,讓玩家展示自己的歌喉。具體代碼如下:
Step3 實現遊戲主循環:
有了上面的鋪墊,就可以開始實現我們的小遊戲了。
此時我們需要繼承ColorLayer類來實現遊戲主循環。首先,我們定義聲控條類來“暗中觀察”我們的嗓音,代碼如下:
然後就是實例化皮卡丘類和block類,其中,block類將被放置進容器以方便整體處理。代碼如下:
啊,千萬別忘了只有輸入了聲音才能控制我們的皮卡丘不停地運動,代碼如下:
最後,我們需要告訴程序遊戲規則,那就是根據麥克風接收到的聲音的音量來控制聲控條的長短以及皮卡丘的動作。這裏,我們通過block塊的整體後移來實現皮卡丘的前進效果。
當然,我們也需要加入必要的碰撞檢測程序,不然皮卡丘一登場就陷入沼澤一樣的地面中了。並且我們規定當皮卡丘掉入“溝壑”後遊戲重置。
代碼如下:
OK,大功告成!!!
如果你需要八音符VS皮卡丘遊戲源碼,可以關注轉發此文後,私信我回復“皮卡丘”即可免費獲取
點擊下方瞭解更多,獲取Python零基礎入門爬蟲進階學習資料~~