拼图的切割、打乱和还原:
切割:首先是要图片获取一样的宽和高
this._widget = baseSp.width/SHRED_NUM_W; this._height = baseSp.height/SHRED_NUM_H;
在创建好的同时在Cell里面需要调用方法:
setIndexId:function(om){ this._cellIndex=om; } getIndexId:function(){ return this._cellIndex; }进行碎片的交换:_exchang2Cell:function(cell1, cell2){ //交换2个碎片的坐标和 indexId var temp = cell1.getPosition(); cell1.setPosition(cell2.getPosition()); cell2.setPosition(temp) temp = cell1.getIndexId() cell1.setIndexId(cell2.getIndexId()) cell2.setIndexId(temp) //结局检查 是否是按 0 1 2 3 4 5 6 7 8 进行交换 }, 对于碎片还原这个方法需要在点击时间里调用一次【that._exchang2Cell(cell, that._temp)】定义【var that = this】这样比较安全一些。还需要在点击开始游戏按钮的时候调用一次【this._exchang2Cell(cell, this._shredArr[random_num])】PS:【random_num为随机打乱数组的长度。】每次点击让点击点和所有的碎片进行point是否在rect里的检查,注意碎片的锚点和碎片的X,Y坐标是否存在坐标差。
【this.touchTarget.setLocalZOrder(that.childrenCount) //将要给元素置顶】
【width height getContentSize 获取原始的宽高 getBoundingBox 获取实际的宽高】
定时器的添加:1.要在点击游戏开始的时间才开始动。 2.时间到了图片将不能再进行点击交换。 3.在游戏完成时,游戏时间应该停止不再动。
小bug:游戏开始的时候碎片打乱顺序,需要建一个游戏开关【_caoboout:false,】因为曾容器的存在,所有在玩的时候会掩盖一些区域点不到,所以需要在UI界面把交互的勾给点掉。
游戏成功或者失败的界面弹出需要在一开始的时候隐藏【false】,在完成了或者时间到了失败了再弹出【true】。