实现麻将回放功能

来源:互联网 发布:c语言定时器 编辑:程序博客网 时间:2024/04/29 09:04

1.服务器记录玩家对战信息,把数据返回给客户端

2.通过返回的数据加载:

数据文件:res/20160921173000.json
//加载JSON文件cc.loader.loadJson("res/20160921173000.json", function (error, data) {    //cc.log(data); //data is the json object    GameData = data;    that._initGame()});
3.显示麻将:
this.player_0_nums, this.player_1_nums, this.player_2_nums
这三个数组分别存取对应玩家1,2,3的麻将数据
_showPais:function(){    var arr = [this.player_0_nums, this.player_1_nums, this.player_2_nums];    for(var i=0;i<arr.length;i++){        for(var j=0;j<20;j++){            this['player_'+i+'_pais'][j].setNewPaim(arr[i][j]?arr[i][j]:100);    //根据数据设置麻将牌面,如果没有数据的牌面设置为100,后面会把100的牌隐藏        }    }},
setNewPaim:function(type,bo){    this.visible = type != 100;  //隐藏数据为100的牌    if(type != 100){        if(type < 0){                         //有一张牌在选择出牌中            this.scale = 1;            type *= -1        }else{            this.scale = 0.4;        }        this.initWithSpriteFrame(cc.spriteFrameCache.getSpriteFrame("new_" + type + ".png"));    }},
4.把满足条件的牌数据*-1(出牌,碰,杠等牌)
if(this["player_"+pid+"_nums"].indexOf(pai[0]) > 0) {         //找到满足条件的牌    this["player_" + pid + "_nums"][this["player_" + pid + "_nums"].indexOf(pai[0])] *= -1   //把它*=-1,相当于标记这个牌
}
5.把100赋值给标记的牌
_showAndDelPais:function(){    this._showPais();    var self = this;    this.scheduleOnce(function(){        var arr = [self.player_0_nums, self.player_1_nums, self.player_2_nums]        for(var i=0;i<arr.length;i++){            for(var j=0;j<arr[i].length;j++){                if(arr[i][j] < 0){                    arr[i][j] = 100                }            }            arr[i].sort(sortNumber);            //console.log(arr[i])        }        self._showPais()        self._setCount()    },this.PLAY_SPEED)},

0 0
原创粉丝点击