zoukankan      html  css  js  c++  java
  • 用cocos2d-html5做的消除类游戏《英雄爱消除》(4)——游戏结束

    游戏结束界面:

    在前面几个教程中,这个界面的创作所需要的知识点基本我们都讲过了,这里就说下用户数据的缓存吧,也是先来看下源码

    /**
     * Power by  html5中文网(html5china.com)
     * author: jackyWHJ
     */
    var GameOver = cc.Layer.extend({
        init:function () {
            var bRet = false;
            if (this._super()) {
                var sp = cc.Sprite.create(s_b05);
                sp.setAnchorPoint( cc.p(0,0) );
                this.addChild(sp, 0, 1);
    
                var logo = cc.Sprite.create(s_gameOver);
                logo.setAnchorPoint(cc.p(0,0));
                logo.setPosition(20,350);
                this.addChild(logo,10,1);
    
                var playAgainNormal = cc.Sprite.create(s_menu, cc.rect(378, 0, 126, 33));
                var playAgainSelected = cc.Sprite.create(s_menu, cc.rect(378, 33, 126, 33));
                var playAgainDisabled = cc.Sprite.create(s_menu, cc.rect(378, 33 * 2, 126, 33));
    
                var playAgain = cc.MenuItemSprite.create(playAgainNormal, playAgainSelected, playAgainDisabled, function(){
                    flareEffect(this,this,this.onPlayAgain);
                }.bind(this) );
    
                var menu = cc.Menu.create(playAgain);
                this.addChild(menu, 1, 2);
                menu.setPosition(winSize.width / 2, 280);
    
                if(!localStorage.getItem("bestScore")){
                    localStorage.setItem("bestScore",g_sharedGameLayer._timeString);
                };
                var lbScore = cc.LabelTTF.create("TIME "+g_sharedGameLayer._timeString,"Forte",26);
                lbScore.setPosition(winSize.width / 2,200);
                lbScore.setColor(cc.c3b(200,38,12));
    //            lbScore.enableStroke(cc.c3b(0,0,0), 26);
                this.addChild(lbScore,10);
    
                var bestString = localStorage.getItem("bestScore");
                var bestArr = bestString.split(":");
                var sTime = bestArr[0]*60 + bestArr[1];
                if(sTime > g_sharedGameLayer._time){
                    localStorage.setItem("bestScore",g_sharedGameLayer._timeString);
                }
                var bestScore = cc.LabelTTF.create("BEST TIME "+ localStorage.getItem("bestScore"),"Forte",26);
                bestScore.setPosition(180,150);
                bestScore.setColor(cc.c3b(200,38,12));
                this.addChild(bestScore,10);
    
                if(LLK.SOUND){
                    cc.AudioEngine.getInstance().playMusic(s_mainMainMusic_mp3);
                }
                bRet = true;
            }
            return bRet;
        },
        onPlayAgain:function (pSender) {
            var scene = cc.Scene.create();
            scene.addChild(GameLayer.create());
            scene.addChild(GameControlMenu.create());
            cc.Director.getInstance().replaceScene(cc.TransitionFade.create(1.2,scene));
        }
    });
    
    GameOver.create = function () {
        var sg = new GameOver();
        if (sg && sg.init()) {
            return sg;
        }
        return null;
    };
    
    GameOver.scene = function () {
        var scene = cc.Scene.create();
        var layer = GameOver.create();
        scene.addChild(layer);
        return scene;
    };
      这里游戏数据的缓存我们是使用本地缓存localStorage来做的
           if(!localStorage.getItem("bestScore")){
                    localStorage.setItem("bestScore",g_sharedGameLayer._timeString);
                };
                var lbScore = cc.LabelTTF.create("TIME "+g_sharedGameLayer._timeString,"Forte",26);
                lbScore.setPosition(winSize.width / 2,200);
                lbScore.setColor(cc.c3b(200,38,12));
    //            lbScore.enableStroke(cc.c3b(0,0,0), 26);
                this.addChild(lbScore,10);

      首先,我们先判断是否存在本体缓存数据,不存在的话我们就添加缓存数据并且把当前的游戏时间通过 cc.LabelTTF添加到Layer上。所过存在缓存数据,我们则取出缓存数据并且与当前游戏进行比较,然后缓存最好成绩并添加到Layer上

           var bestString = localStorage.getItem("bestScore");
                var bestArr = bestString.split(":");
                var sTime = bestArr[0]*60 + bestArr[1];
                if(sTime > g_sharedGameLayer._time){
                    localStorage.setItem("bestScore",g_sharedGameLayer._timeString);
                }
  • 相关阅读:
    log4cpp
    互斥锁封装
    Educational Codeforces Round 37-F.SUM and REPLACE (线段树,线性筛,收敛函数)
    Codeforces 920E-Connected Components? (set,补图,连通块)
    Persistent Bookcase CodeForces
    P4390 [BOI2007]Mokia 摩基亚 (CDQ解决三维偏序问题)
    P3157 [CQOI2011]动态逆序对 (CDQ解决三维偏序问题)
    CDQ 分治解决和点对有关的问题
    洛谷 P2163 [SHOI2007]园丁的烦恼 (离线sort,树状数组,解决三维偏序问题)
    洛谷 P3469 [POI2008]BLO-Blockade (Tarjan,割点)
  • 原文地址:https://www.cnblogs.com/jackyWHJ/p/3778424.html
Copyright © 2011-2022 走看看