cocos2d-x 欢乐捕鱼游戏总结
這幾天一直都在做一個捕魚游戲Demo,大概花掉了我快一個禮拜的時間。游戲主體是使用的cocos2d-x高級開發教程里面提供的小部分框架基本功能。然后自己加入所有的UI元素和玩法。變成了一個體驗不錯的捕魚游戲。現把這幾天遇到的所有情況總結如下:
1.捕捉到魚時發現,魚的移動動作沒有移除,但是實際卻進行了魚對象的移除操作:
解決:首先考慮是不是自己沒有移除,存儲魚的數組會不會太小,而導致魚對象混亂的情況。 數組加大無效果。考慮是不是由于引用計數的原因,被其他對象引用,所以導致移除不了,通過進行打引用計數日志發現,并非此情況,因為只有部分魚不能移除繼續游動的動畫,而所有的引用計數卻都相等。在“這不科學”的理論下,最終想到了可能是自己進行魚動畫播放的時候,有重疊。所以本來已經移除掉了魚對象,但是由于重疊會導致魚對象并沒有被移除的假象。坑的我調試了一個下午。這是最大的bug.
2.由于給魚存放的數組CCArray沒有對已經移除屏幕的魚對象進行清理,導致數組線性增大,后來修改,保證數組維持在5到30之間。也即屏幕中維持相對應的魚的數量。
3.移植到安卓平臺,登陸進去發現閃退,后來發現是由于我沒有在進度條下進行動畫緩存加載,而是直接寫在進度條執行完切換場景的時候。直接就給跪了。
4.安卓登陸進去發現剛開始只有部分有聲音,有些后來才有,知道是自己沒有對聲音預加載完全。
5.遇到了隨機數不隨機的情況,發現我使用隨機數的時候,不管是CCRAND_0_1,rand,srand 只要時間點大概相差一秒以內,每次隨機出來的都是固定的一個數。網上找資料發現有一個函數可以不由時間限制,但是卻只能用在ipone開發里面吧。
6.音效和音樂的bug,雖然自己設置了音樂和音效不可播放,但是只要我使用playbackgroundmusic,effect就又會重啟音樂和音效。所以在每一個需要play的地方都提前判斷當前是否設置為可以播放狀態。
7.使用UserDefault.xml文件的時候,第一次是默認什么也沒有的,而第二次運行的話都把第一次的數據保存了,所以這里需要進行一次分支判斷,當前是否為第一次使用。可以在數據里面設置一個key,只有能讀到key則證明不是第一次了。否則沒讀到默認返回FALSE。
8.魚和網的剛體是非常容易碰撞的,但是抓魚卻不一定每次都能抓到,而且還有根據魚的大小和網的大小來計算抓魚概率,所以這里想到一種辦法,將魚由小到大由0.5趨近于0,網由小到大從0趨近于0.5然后再兩者相加得到抓魚概率,但是發現也還是比較容易抓,所以再進行一次隨 機數判斷,就可以通過這個隨機數來設置抓魚的難易程度了。
9當魚被抓到的時候要執行各種動畫:魚被抓住時的動畫,出現金幣并移動到炮臺位置的合并動畫這里要用到CCSpawn,顯示加多少金幣的動畫。
? 10.切記當設置參數到?CCUserDefault時,一定要記得調用flush,不然數據不會保存,最好每次set完就進行保存。游戲退出時肯定需要保存好,這里是個大坑。
11.最后是移植到安卓的天坑,首先自己使用書上的cocos2d-x的模板,就只能用相對于的版本,發現時2.0.3的,都是兩年前發布的版本了,網上都搜半天,最后在一個類似的官方網站搜到了,卻發現下載不了。是網址上有google字樣么,我大天朝。木有辦法,看移植到2.1.4可行不,發現各種改,木有辦法,放棄。那就向下找,發現下載了一個cocos2d-1.0.1-x-0.13.0-beta版本,結果也是報錯,感覺會不成功,還是放棄。最后只能下載2.0.3版本,木得辦法,但是奇跡發生了。我把網址放到QQ上發給同學時,卻發現可以在會話框里面顯示下載。企鵝真是我的恩人啊。終于把2.0.3版本下載,發現編譯成安卓,還要使用cygwin,幸好我之前有編譯過,ndk,sdk,adt都妥妥的配置好了,而三次我用3.0版本的編譯,只需要使用python文件,輕松搞定,而這次需要各種改參數和配置。最終花了一天時間,終于生成了.o文件,但是但我編譯到安卓上生成apk之后妥妥的給我閃退了。orz 因為之前使用的捕魚框架自帶的一些文件,發現很多都缺失了。導致了這個問題。后面直接使用2.0.3版本的已編譯好了的HelloCpp進行更改,添加Classes和Resource文件。最后生成apk文件,這里又有一個坑,但我生成好時,我就想在ADT里面編譯查看,發現總是報:Not Such file or directory (2) 。以為是自己代碼的問題,各種看,后來發現直接把apk拷貝到真機,居然能運行。啊,又一大坑。
好了,到這里捕魚項目就弄好了,雖然各種曲折,但是能編譯到安卓上并運行,還是很happy的,畢竟是2.0.3版本的,早知道就寫的時候把框架搬到3.0+的版本上,移植就快多了。詳細的移植教程我就不寫了, 網上已經有很多教程了。比如這個:cocos2dx環境配置及打包apk?
源碼的話,過段時間再貼上來吧。Demo是希望面試的時候能夠用上,(*^__^*) 嘻嘻…… ?最后貼上我的 游戲界面吧~?
UI都是自己網上找的,我不會告訴你可以解壓別人發布的apk文件獲取一些UI的 :)
?
轉載于:https://www.cnblogs.com/xxiaoye/p/3977048.html
總結
以上是生活随笔為你收集整理的cocos2d-x 欢乐捕鱼游戏总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宝马刷隐藏五系BMW530LI EVO开
- 下一篇: 最佳实践 | 如何基于GitHub Ac