| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303 | 
							- cc.Class({
 
-     extends: cc.Component,
 
-     properties: {
 
-         CountDown: {
 
-             default: null,
 
-             type: cc.Node
 
-         },
 
-         CardsData:[],
 
-         CardsList:{
 
-             default: null,
 
-             type: cc.Node
 
-         },
 
-         Card:{
 
-             default: null,
 
-             type: cc.Prefab
 
-         },
 
-         ZhiJingRenDetails:{
 
-             default: null,
 
-             type: cc.Node
 
-         },
 
-         CompareCardsArr:[],
 
-         TimeTimingNode:{
 
-             default: null,
 
-             type: cc.Node
 
-         },
 
-         CurrentCardsNum:20,
 
-         GameOverPage:{
 
-             default: null,
 
-             type: cc.Node
 
-         },
 
-         GamePlayPage:{
 
-             default: null,
 
-             type: cc.Node
 
-         },
 
-         TimingTimerID:null,
 
-         TimingNum:0,
 
-         TimingText:'',
 
-         CardsNodeArr:[],
 
-         EnableTouch:true,
 
-     },
 
-     onLoad(){
 
-         this.EnableTouch = true;
 
-         this.CardsNodeArr = [];
 
-         this.CurrentCardsNum = 20;
 
-         this.CardsData = [
 
-             {
 
-                 DimensionID: '1',
 
-                 DimensionName: '自然',
 
-                 CardsListData: [
 
-                     {
 
-                         CardName: '袁隆平',
 
-                         CardWord: '坚持',
 
-                         CardIMG: cc.Color.GREEN,
 
-                         CardDetailsText: '袁隆平是杂交水稻研究领域的开创者和带头人,先后成功研发出“三系法”杂交水稻。'
 
-                     },
 
-                     {
 
-                         CardName: '钱学森',
 
-                         CardWord: '奋斗',
 
-                         CardIMG: cc.Color.RED,
 
-                         CardDetailsText: '钱学森发展国防科学技术方面做了大量工作,在我国导弹核武器的研究中建立了功勋。'
 
-                     },
 
-                     {
 
-                         CardName: '熊庆来',
 
-                         CardWord: '刻苦',
 
-                         CardIMG: cc.Color.YELLOW,
 
-                         CardDetailsText: '熊庆来主要从事函数论方面的研究,定义了一个“无穷级函数”,国际上称为熊氏无穷数。'
 
-                     },
 
-                     {
 
-                         CardName: '华罗庚',
 
-                         CardWord: '努力',
 
-                         CardIMG: cc.Color.BLUE,
 
-                         CardDetailsText: '华罗庚是一位只有初中学历的数学家,对数论有很深的研究,得出了著名的华氏定理。'
 
-                     }
 
-                 ]
 
-             },
 
-             {
 
-                 DimensionID: '2',
 
-                 DimensionName: '数学',
 
-                 CardsListData: [
 
-                     {
 
-                         CardName: '熊庆来',
 
-                         CardWord: '刻苦',
 
-                         CardIMG: cc.color.BLUE,
 
-                         CardDetailsText: '熊庆来主要从事函数论方面的研究,定义了一个“无穷级函数”,国际上称为熊氏无穷数。'
 
-                     },
 
-                     {
 
-                         CardName: '华罗庚',
 
-                         CardWord: '努力',
 
-                         CardIMG: cc.color.BLUE,
 
-                         CardDetailsText: '华罗庚是一位只有初中学历的数学家,对数论有很深的研究,得出了著名的华氏定理。'
 
-                     }
 
-                 ]
 
-             }
 
-         ];
 
-     },
 
-     start () {
 
-     },
 
-     ReadyBeforePlay(DimensionID){
 
-         this.CompareCardsArr = [];
 
-         this.CardsNodeArr = [];
 
-         this.CurrentCardsNum = 20;
 
-         this.TimeTimingNode.getComponent(cc.Label).string = '时间:00:00';
 
-         //播放倒计时动画
 
-         var CountDownAnim = this.CountDown.getComponent(cc.Animation);
 
-         CountDownAnim.play();
 
-         CountDownAnim.on('finished',this.TimeTiming,this);
 
-         var CardsListData = this.GetCardsListByDimensionID(DimensionID);
 
-         // console.log(CardsList);
 
-         this.DestroyAllChildren(this.CardsList);
 
-         this.AddCardToCardsList(this.CardsList,this.Card,CardsListData);
 
-         this.ZhiJingRenDetails.active = false;
 
-     },
 
-     //时间计时
 
-     TimeTiming(){
 
-         var Minute = 0;
 
-         var Second = 0;
 
-         var self = this;
 
-         self.TurnCardsToBack(self.CardsNodeArr);
 
-         self.TimingTimerID = setInterval(function(){
 
-             self.TimingNum+=1;
 
-             var TimeText = '';
 
-             if(Second<60){
 
-                 Second+=1;
 
-                 if(Second==60){
 
-                     Second=0;
 
-                     Minute+=1;
 
-                 }
 
-             }
 
-             if(Minute > 0 && Minute <10){
 
-                 TimeText = TimeText+'0'+Minute+':';
 
-             }else if(Minute >= 10){
 
-                 TimeText = TimeText+Minute+':';
 
-             }else{
 
-                 TimeText += '00:'
 
-             }
 
-             if(Second > 0 && Second <10){
 
-                 TimeText = TimeText+'0'+Second;
 
-             }else if(Second >= 10){
 
-                 TimeText += Second;
 
-             }else{
 
-                 TimeText += '00'
 
-             }
 
-             self.TimeTimingNode.getComponent(cc.Label).string = '时间:'+TimeText;
 
-             self.TimingText = TimeText;
 
-         },1000);
 
-     },
 
-     GetCardsListByDimensionID(DimensionID){
 
-         var CardsDataArrLength = this.CardsData.length;
 
-         var CardsListData = [];
 
-         for(var i=0;i<CardsDataArrLength;i++){
 
-             if(DimensionID == this.CardsData[i].DimensionID){
 
-                 CardsListData = this.CardsData[i].CardsListData;
 
-             }
 
-         }
 
-         return CardsListData;
 
-     },
 
-     AddCardToCardsList(CardsList,CardPrefab,CardsListData){
 
-         //1.生成20个空卡放入节点数组;
 
-         this.CardsNodeArr = [];
 
-         for(var i = 0;i<20;i++){
 
-             var newMyPrefab = cc.instantiate( CardPrefab );
 
-             newMyPrefab.parent = CardsList;
 
-             this.CardsNodeArr.push(newMyPrefab);
 
-         }
 
-         //2.随机10个智敬人CardsListData卡片信息,然后存到智敬人数组CardsInfoArr里存2次,这样就是10对卡片了。
 
-         var CardsInfoArr = [];
 
-         var CardsListDataIndex = 0;
 
-         //如果卡库length>=10,则:
 
-         // 设置个index数组=【0-卡库.length】,然后从卡库数组取(随机index数组)位的信息,放入智敬人数组,放入2次,然后该index在数组中移出,直至I=9,
 
-         if(CardsListData.length >= 10){
 
-             var indexArr = [];
 
-             for(var i = 0;i<CardsListData.length;i++){
 
-                 indexArr.push(i);
 
-             }
 
-             for(var i = 0;i<10;i++){
 
-                 CardsListDataIndex = this.GetRandomNum(0,indexArr.length-1);
 
-                 let aIndex = indexArr[CardsListDataIndex];
 
-                 CardsInfoArr.push(CardsListData[aIndex]);
 
-                 CardsInfoArr.push(CardsListData[aIndex]);
 
-                 indexArr.splice(CardsListDataIndex,1);
 
-             }
 
-         }
 
-         //如果卡库length<10,则:
 
-         // 依次保存入对应智敬人数组,完事之后再补随机,直至满10位。
 
-         else{
 
-             for(var i = 0;i<10;i++){
 
-                 if(i<CardsListData.length){
 
-                     CardsListDataIndex = i;
 
-                 }else{
 
-                     CardsListDataIndex = this.GetRandomNum(0,CardsListData.length-1);
 
-                 }
 
-                 CardsInfoArr.push(CardsListData[CardsListDataIndex]);
 
-                 CardsInfoArr.push(CardsListData[CardsListDataIndex]);
 
-             }
 
-         }
 
-         //3.设置个CardsInfoArrIndex数组=【0-19】,将智敬人数组顺序打乱, 依次放入节点数组随机index(index数组取随机),该index就从index数组里面移出,
 
-         var CardsInfoIndexArr = [];
 
-         // var DisorderlyCardsInfoArr = [];
 
-         var CardsInfoIndex = 0;
 
-         for(var i = 0;i<20;i++){
 
-             CardsInfoIndexArr.push(i);
 
-         }
 
-         for(var i = 0;i<20;i++){
 
-             CardsInfoIndex = this.GetRandomNum(0,CardsInfoIndexArr.length-1);
 
-             // DisorderlyCardsInfoArr.add(CardsInfoArr[CardsInfoIndex]);
 
-             var CardDetailsScript = this.CardsNodeArr[i].getComponent( 'CardDetails' );
 
-             CardDetailsScript.GamePlayPageJS = this;
 
-             let aIndex = CardsInfoIndexArr[CardsInfoIndex];
 
-             CardDetailsScript.SetDetails(i,CardsInfoArr[aIndex]);
 
-             CardsInfoIndexArr.splice(CardsInfoIndex,1);
 
-         }
 
-     },
 
-     //倒计时结束开始游戏后,所有卡片翻过去,变成背面
 
-     TurnCardsToBack(CardsNodeArr){
 
-         for(var i = 0;i<20;i++){
 
-             CardsNodeArr[i].getChildByName('CardBack').active = true;
 
-         }
 
-     },
 
-     CompareCards(CardID,CardName,Details,CardNode){
 
-         if(this.EnableTouch == false) return;
 
-         CardNode.getChildByName('CardBack').active = false;
 
-         if(this.CompareCardsArr.length == 0){
 
-             var aCard = {CardID,CardName,CardNode};
 
-             this.CompareCardsArr.push(aCard);
 
-         }else if(this.CompareCardsArr.length == 1){
 
-             this.EnableTouch = false;
 
-             if(CardID != this.CompareCardsArr[0].CardID){
 
-                 var aCard = {CardID,CardName,CardNode};
 
-                 this.CompareCardsArr.push(aCard);
 
-                 if(CardName == this.CompareCardsArr[0].CardName){
 
-                     this.ZhiJingRenDetails.active = true;
 
-                     this.SetZhiJingRenDetails(Details);
 
-                     this.scheduleOnce(function() {
 
-                         this.CardsClear(this.CompareCardsArr);
 
-                         this.EnableTouch = true;
 
-                         this.CompareCardsArr.splice(0,2);
 
-                     }, 0.5);
 
-                 }else{
 
-                     this.scheduleOnce(function() {
 
-                         this.CardsReset(this.CompareCardsArr);
 
-                         this.EnableTouch = true;
 
-                         this.CompareCardsArr.splice(0,2);
 
-                     }, 0.5);
 
-                 }
 
-             }
 
-         }else if(this.CompareCardsArr.length == 2){//当玩家快速点到第三个的时候,就让前两个马上消失
 
-             if(CardName == this.CompareCardsArr[0].CardName){
 
-                 this.CardsClear(this.CompareCardsArr);
 
-             }else{
 
-                 this.CardsReset(this.CompareCardsArr);
 
-             }
 
-             this.CompareCardsArr.splice(0,2);
 
-             var aCard = {CardID,CardName,CardNode};
 
-             this.CompareCardsArr.push(aCard);
 
-         }
 
-     },
 
-     CardsClear(CompareCardsArr){
 
-         for(var i = 0;i<CompareCardsArr.length;i++){
 
-             var CardNodeJS = CompareCardsArr[i].CardNode.getComponent('CardDetails');
 
-             CardNodeJS.CardClear();
 
-         }
 
-         this.CurrentCardsNum -= 2;
 
-         //20张卡牌全部消除,游戏结束
 
-         if(this.CurrentCardsNum == 0){
 
-             this.GameOverPage.active = true;
 
-             this.GamePlayPage.active = false;
 
-             clearInterval(this.TimingTimerID);
 
-             var GameOverJS = this.GameOverPage.getComponent('GameOverPage');
 
-             GameOverJS.SetGameResut(this.TimingNum,this.TimingText)
 
-         }
 
-     },
 
-     CardsReset(CompareCardsArr){
 
-         for(var i = 0;i<CompareCardsArr.length;i++){
 
-             var CardNodeJS = CompareCardsArr[i].CardNode.getComponent('CardDetails');
 
-             CardNodeJS.CardReset();
 
-         }
 
-     },
 
-     SetZhiJingRenDetails(Details){
 
-         this.ZhiJingRenDetails.getChildByName('DetailsText').getComponent(cc.Label).string = Details.CardDetailsText;
 
-         this.ZhiJingRenDetails.getChildByName('HeadIMG').color = Details.CardIMG;//图片暂时用颜色代替
 
-     },
 
-     DestroyAllChildren(ParentNode){
 
-         var children = ParentNode.children;
 
-         for (var i = 0; i < children.length; i++)
 
-         {
 
-             children[i].destroy();
 
-         }
 
-     },
 
-     //从n到m获取随机整数,包含n,m
 
-     GetRandomNum(n, m) {
 
-         var random = Math.floor(Math.random() * (m - n + 1) + n);
 
-         return random;
 
-     }
 
- });
 
 
  |