開發(fā)工具
Python版本:3.6.4
相關(guān)模塊:
cocos2d模塊;
pyaudio模塊宴杀;
以及一些Python自帶的模塊阀趴。
環(huán)境搭建
安裝Python并添加到環(huán)境變量碌尔,pip安裝需要的相關(guān)模塊即可。
原理介紹
相信很多人對八音符這款游戲并不陌生吧朋魔,其核心玩法是利用聲音控制一個帶辮子的小黑球不斷前進岖研,大概是長這樣子的吧:
今天我們就來做一個低配版本的T_T,其功能為利用聲音控制皮卡丘不斷前進警检。
游戲主要使用了cocos2d模塊和pyaudio模塊孙援,前者用于搭建游戲框架,后者用于獲得麥克風的聲音扇雕。
Step1 定義皮卡丘類:
既然游戲的主角是皮卡丘拓售,那我們總得單獨定義一個類來體現(xiàn)一下主角吧?
利用cocos2d模塊來定義主角類是一件非常輕松的事情镶奉。你只需要繼承sprites類础淤,然后告訴sprites類需要執(zhí)行什么操作即可。
根據(jù)八音符的游戲規(guī)則哨苛,我們賦予皮卡丘跳躍鸽凶、下降和靜止的能力,同時建峭,我們規(guī)定皮卡丘在空中時無法進行跳躍玻侥。具體代碼如下:
Step2 定義block類:
顯然,主角需要有站的地方吧T_T亿蒸,到處都是萬丈深淵怕是一萬只皮卡丘也拯救不了地球人吧T_T凑兰。
對于地面,剛開始的時候先得有一段長點的平地緩沖一下祝懂,讓玩家先試試自己的嗓音票摇,然后再隨機生成跳躍塊,讓玩家展示自己的歌喉砚蓬。具體代碼如下:
Step3 實現(xiàn)游戲主循環(huán):
有了上面的鋪墊矢门,就可以開始實現(xiàn)我們的小游戲了。
此時我們需要繼承ColorLayer類來實現(xiàn)游戲主循環(huán)。首先祟剔,我們定義聲控條類來“暗中觀察”我們的嗓音隔躲,代碼如下:
然后就是實例化皮卡丘類和block類,其中物延,block類將被放置進容器以方便整體處理宣旱。代碼如下:
啊,千萬別忘了只有輸入了聲音才能控制我們的皮卡丘不停地運動叛薯,代碼如下:
最后浑吟,我們需要告訴程序游戲規(guī)則,那就是根據(jù)麥克風接收到的聲音的音量來控制聲控條的長短以及皮卡丘的動作耗溜。這里组力,我們通過block塊的整體后移來實現(xiàn)皮卡丘的前進效果。
當然抖拴,我們也需要加入必要的碰撞檢測程序燎字,不然皮卡丘一登場就陷入沼澤一樣的地面中了。并且我們規(guī)定當皮卡丘掉入“溝壑”后游戲重置阿宅。
代碼如下:
OK候衍,大功告成!H鞣拧蛉鹿!