cocos2d-x 歡樂捕魚遊戲總結

這幾天一直都在作一個捕魚遊戲Demo,大概花掉了我快一個禮拜的時間。遊戲主體是使用的cocos2d-x高級開發教程裏面提供的小部分框架基本功能。而後本身加入全部的UI元素和玩法。變成了一個體驗不錯的捕魚遊戲。現把這幾天遇到的全部狀況總結以下:python

  1.捕捉到魚時發現,魚的移動動做沒有移除,可是實際卻進行了魚對象的移除操做:面試

    解決:首先考慮是否是本身沒有移除,存儲魚的數組會不會過小,而致使魚對象混亂的狀況。 數組加大無效果。考慮是否是因爲引用計數的緣由,被其餘對象引用,因此致使移除不了,經過進行打引用計很多天志發現,並不是此狀況,由於只有部分魚不能移除繼續遊動的動畫,而全部的引用計數卻都相等。在「這不科學」的理論下,最終想到了多是本身進行魚動畫播放的時候,有重疊。因此原本已經移除掉了魚對象,可是因爲重疊會致使魚對象並無被移除的假象。坑的我調試了一個下午。這是最大的bug.數組

  2.因爲給魚存放的數組CCArray沒有對已經移除屏幕的魚對象進行清理,致使數組線性增大,後來修改,保證數組維持在5到30之間。也即屏幕中維持相對應的魚的數量。緩存

  3.移植到安卓平臺,登錄進去發現閃退,後來發現是因爲我沒有在進度條下進行動畫緩存加載,而是直接寫在進度條執行完切換場景的時候。直接就給跪了。app

  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而後再二者相加獲得抓魚機率,可是發現也仍是比較容易抓,因此再進行一次隨   機數判斷,就能夠經過這個隨機數來設置抓魚的難易程度了。google

  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的 :)

 

相關文章
相關標籤/搜索