Fruit Ninja(水果忍者)游戏源代码下载、分析(下)---可运行Android,Ios,Window,Mac,Html5平台

背景:

   这一篇是结尾篇,主要分析炸弹检测,游戏结束和保存最高分;

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


效果图:

Fruit Ninja(水果忍者)游戏源代码下载、分析(下)---可运行Android,Ios,Window,Mac,Html5平台_第1张图片




代码分析:


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游戏源代码揭秘和下载

flappy bird游戏源代码揭秘和下载后续---移植到android真机上

flappy bird游戏源代码揭秘和下载后续---移植到html5网页浏览器

flappy bird游戏源代码揭秘和下载后续---日进5万美元的秘诀AdMob广告 


PopStar(消灭星星)游戏源代码下载、分析及跨平台移植---第一篇(界面) 

PopStar(消灭星星)游戏源代码下载、分析及跨平台移植---第二篇(算法) 

PopStar(消灭星星)游戏源代码下载、分析及跨平台移植---第三篇(分数)  

PopStar(消灭星星)游戏源代码下载、分析及跨平台移植---第四篇(关卡) 



你可能感兴趣的:(cocos2d-html5,cocos2d-js,cocoseditor,水果忍者源代码)