背景:
這一篇是結尾篇,主要分析炸彈檢測,遊戲結束和保存最高分;
ps:
1 CocosEditor已發佈新版本,現在提供6個實戰demo學習,包括flappy ,popstar ,fruitninja,moonwarroris,fruitattack,testjavascript;
2 代碼是基於javascript語言,cocos2d-x遊戲引擎,CocosEditor手遊開發工具完成的;
3 運行demo需要配置好CocosEditor,暫不支持其他工具。demo是跨平臺的,可移植運行android,ios,html5網頁等。
源代碼下載:
請到代碼集中營下載(水果忍者):http://blog.makeapp.co/?p=319
效果圖:
代碼分析:
1 進入主場景從本地數據庫中獲取最高分,並顯示最高分文字this.bestScoreLabel;
//bestScore
this.bestScore = sys.localStorage.getItem("bestScore");
if (this.bestScore != null && this.bestScore != undefined) {
this.bestScore = Number(this.bestScore);
}
else {
this.bestScore = 0;
}
cc.log("bestScore==" + this.bestScore);
this.bestScoreLabel.setString(FRUIT_STRINGS.bestScore + this.bestScore);
this.overLayer.setVisible(false);
2 在觸摸移動的過程中,會切到水果也會切刀炸彈,如果是炸彈,遊戲直接結束 ;
#我們已經建立過水果數組,炸彈的編號num是5,所以很簡單,只要判斷水果的編號就可以輕易的確定炸彈;
#如果是炸彈,遊戲狀態over,播放音效boom;
#創建炸彈光芒light精靈;
#播放一個序列動畫,放大選擇 然後清除,最後回調到結束函數this.gameOver();
//if bomb
if (fruit.num == 5) {
this.gameStatus = OVER;
cc.AudioEngine.getInstance().playEffect(FRUIT_SOUNDS.boom, false);
var light = cc.MySprite.create(this.rootNode, FRUIT_DATA[5].cutImage, loc, 1100);
light.runAction(cc.Sequence.create(
cc.Spawn.create(cc.ScaleTo.create(2, 10), cc.RotateBy.create(1, 360)),
cc.CleanUp.create(light),
cc.CallFunc.create(function ()
{
this.gameOver();
}, this)
));
return;
}
3 遊戲結束有兩種情況,一種是時間到,另一種是切到炸彈;
#遊戲結束後,顯示遊戲層overLayer;
#提示你得到的分數gameScoreTip;
#如果本次玩的最高分大於歷史最佳分數,本地數據庫存儲當前分數
#延時6s回到開始界面;
MainLayer.prototype.gameOver = function ()
{
cc.AudioEngine.getInstance().playEffect(FRUIT_SOUNDS.over, false);
this.overLayer.setZOrder(1000);
this.overLayer.setVisible(true);
var gameScoreTip = FRUIT_STRINGS.youGet + this.totalScore + FRUIT_STRINGS.score;
cc.log("this.totalScore=" + this.totalScore);
cc.log("this.bestScore=" + this.bestScore);
if (this.totalScore > this.bestScore) {
cc.log("this.bestScore=" + this.bestScore);
sys.localStorage.setItem("bestScore", this.totalScore + "");
gameScoreTip = gameScoreTip + FRUIT_STRINGS.record;
}
this.overScoreLabel.setString(gameScoreTip);
this.overLayer.scheduleOnce(function ()
{
cc.AudioEngine.getInstance().stopAllEffects();
cc.BuilderReader.runScene("", "StartLayer");
}, 6);
};
水果忍者系列結束
FruitNinja系列文章
Fruit Ninja(水果忍者)遊戲源代碼下載、分析(上)
Fruit Ninja(水果忍者)遊戲源代碼下載、分析(中)
Fruit Ninja(水果忍者)遊戲源代碼下載、分析(下)
傳送門(優質博文):
flappy bird遊戲源代碼揭祕和下載後續---移植到android真機上
flappy bird遊戲源代碼揭祕和下載後續---移植到html5網頁瀏覽器
flappy bird遊戲源代碼揭祕和下載後續---日進5萬美元的祕訣AdMob廣告
PopStar(消滅星星)遊戲源代碼下載、分析及跨平臺移植---第一篇(界面)
PopStar(消滅星星)遊戲源代碼下載、分析及跨平臺移植---第二篇(算法)
PopStar(消滅星星)遊戲源代碼下載、分析及跨平臺移植---第三篇(分數)
PopStar(消滅星星)遊戲源代碼下載、分析及跨平臺移植---第四篇(關卡)