|
|
@@ -0,0 +1,509 @@
|
|
|
+window.UtilsNode = {
|
|
|
+
|
|
|
+
|
|
|
+ PrefabsName: [
|
|
|
+ "prefab/share",
|
|
|
+ "prefab/show",
|
|
|
+ "prefab/login",
|
|
|
+ "prefab/loading",
|
|
|
+ "prefab/stock",
|
|
|
+ ],
|
|
|
+
|
|
|
+ sharePrefab: [
|
|
|
+ "prefab/share",
|
|
|
+ "prefab/sharepublic",
|
|
|
+ "prefab/MoneyFlyAfterShare",
|
|
|
+ ],
|
|
|
+
|
|
|
+ put: function (e, v) {
|
|
|
+ if (window.localStorage) {
|
|
|
+ window.localStorage[e] = v;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ get: function (e) {
|
|
|
+ if (window.localStorage) {
|
|
|
+ let re = "";
|
|
|
+ if (window.localStorage[e] == null) {
|
|
|
+ return re;
|
|
|
+ } else {
|
|
|
+ return window.localStorage[e];
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ //产生演员
|
|
|
+ startActor: function (bgArr) {
|
|
|
+ let defXx = 100;
|
|
|
+
|
|
|
+ let defX = defXx;
|
|
|
+ let defY = 300;
|
|
|
+
|
|
|
+ let defaddX = 180;
|
|
|
+ let defaddY = 180;
|
|
|
+
|
|
|
+
|
|
|
+ let itemXCount = 4;
|
|
|
+ let itemXCount2 = 1;
|
|
|
+ //总演员个数
|
|
|
+ let itemMaxCount = 101;
|
|
|
+ // let itemMaxCount = 17;
|
|
|
+
|
|
|
+
|
|
|
+ //总个数 是 itemMaxCount + itemYCount 想要的个数+多少行
|
|
|
+ let itemYCount = itemMaxCount / itemXCount;
|
|
|
+
|
|
|
+ let postions = [];
|
|
|
+
|
|
|
+ let tempitemXCount = itemXCount;
|
|
|
+
|
|
|
+ let tempxarr = [];
|
|
|
+
|
|
|
+ let bgArrs = [];
|
|
|
+
|
|
|
+ for (let i = 0; i < itemYCount; i++) {
|
|
|
+
|
|
|
+ // if (i%2 == 0) {
|
|
|
+ // tempitemXCount = itemXCount;
|
|
|
+ // }else{
|
|
|
+ // tempitemXCount = itemXCount2;
|
|
|
+ // }
|
|
|
+ if (tempxarr.length == 0) {
|
|
|
+ for (let x = 0; x < tempitemXCount; x++) {
|
|
|
+ if (x == 0) {
|
|
|
+ defX = defXx
|
|
|
+ } else {
|
|
|
+ defX += defaddX;
|
|
|
+ }
|
|
|
+ tempxarr.push(defX);
|
|
|
+ let p = {x: tempxarr[x], y: defY};
|
|
|
+ postions.push(p);
|
|
|
+ }
|
|
|
+ let p = {x: tempxarr[tempxarr.length - 1], y: defY += defaddY,q:0};
|
|
|
+ postions.push(p);
|
|
|
+ bgArrs.push(p);
|
|
|
+ } else if (tempxarr.length > 0 && i % 2 != 0) {
|
|
|
+ if (postions.length > itemMaxCount) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ defY += defaddY;
|
|
|
+ // 奇数
|
|
|
+ for (let z = tempxarr.length - 1; z >= 0; z--) {
|
|
|
+ let p = {x: tempxarr[z], y: defY};
|
|
|
+ postions.push(p);
|
|
|
+ if (postions.length > itemMaxCount) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (postions.length > itemMaxCount) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ let p = {x: tempxarr[0], y: defY += defaddY,w:0};
|
|
|
+ postions.push(p);
|
|
|
+ bgArrs.push(p);
|
|
|
+ } else if (tempxarr.length > 0 && i % 2 == 0) {
|
|
|
+ if (postions.length > itemMaxCount) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ defY += defaddY;
|
|
|
+ //偶数
|
|
|
+ for (let z = 0; z < tempitemXCount; z++) {
|
|
|
+ let p = {x: tempxarr[z], y: defY};
|
|
|
+ postions.push(p);
|
|
|
+ if (postions.length > itemMaxCount) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (postions.length > itemMaxCount) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ let p = {x: tempxarr[tempxarr.length - 1], y: defY += defaddY,q:0};
|
|
|
+ postions.push(p);
|
|
|
+ bgArrs.push(p);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ // for (let x = 0; x < tempitemXCount; x++) {
|
|
|
+ // if (x==0) {
|
|
|
+ // defX = defXx
|
|
|
+ // }else{
|
|
|
+ // defX+=defaddX;
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // let p = {x:defX,y:defY};
|
|
|
+ // postions.push(p);
|
|
|
+ // }
|
|
|
+ if (bgArr != null) {
|
|
|
+ bgArr(bgArrs,postions);
|
|
|
+ }
|
|
|
+
|
|
|
+ return postions;
|
|
|
+ },
|
|
|
+ // ①、// 生成 [n,m),包含n但不包含m的正整数: parseInt(Math.random()*(m-n)+n)
|
|
|
+ //
|
|
|
+ // ②、// 生成 (n,m],不包含n但包含m的正整数: parseInt(Math.random()*(m-n)+n)+1
|
|
|
+ //
|
|
|
+ // ③、// 生成 [n,m],包含n和m的随机数: parseInt(Math.random()*(m-n+1)+n)
|
|
|
+ //
|
|
|
+ // ④、// 生成 (n,m),不包含n和m的正整数: parseInt(Math.random()*(m-n-1)+n+1)
|
|
|
+ getRandom: function (type, n, m) {
|
|
|
+ let random;
|
|
|
+ switch (type) {
|
|
|
+ case 0:
|
|
|
+ random = parseInt(Math.random() * (m - n) + n);
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ random = parseInt(Math.random() * (m - n) + n) + 1;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ random = parseInt(Math.random() * (m - n + 1) + n);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ random = parseInt(Math.random() * (m - n - 1) + n + 1);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return random;
|
|
|
+ },
|
|
|
+
|
|
|
+// this.node.setScale(1,-1);
|
|
|
+// this.node.setRotation(180);
|
|
|
+// console.log("我应该脸往左",temp,temp1);
|
|
|
+
|
|
|
+// this.node.setScale(1,1);
|
|
|
+// this.node.setRotation(0);
|
|
|
+// console.log("我应该脸往右",temp,temp1);
|
|
|
+
|
|
|
+ setMyRotation : function(type,node){
|
|
|
+ switch (type) {
|
|
|
+ case 0:
|
|
|
+ node.setScale(1,-1);
|
|
|
+ node.setRotation(180);
|
|
|
+// console.log("我应该脸往左",temp,temp1);
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ node.setScale(1,1);
|
|
|
+ node.setRotation(0);
|
|
|
+// console.log("我应该脸往右",temp,temp1);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ //获取 百分比
|
|
|
+ getPercentage: function (n, m) {
|
|
|
+ let num = parseInt(n);
|
|
|
+ let max = parseInt(m);
|
|
|
+ if (isNaN(num) || isNaN(max)) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ return max <= 0 ? 0 : parseInt((Math.round(num / max * 10000) / 100.00));
|
|
|
+ },
|
|
|
+ //随机生成演员
|
|
|
+ actorBirth: function (parentNode, arrp, actorType, startActor, endActor) {
|
|
|
+ let nodearr = [];
|
|
|
+ for (var i = 0; i < arrp.length; i++) {
|
|
|
+ let mInt = parseInt(Math.random() * (actorType.length - 0));
|
|
|
+ let tag = true;
|
|
|
+
|
|
|
+ if (i < 9) {
|
|
|
+ switch (i) {
|
|
|
+ case 1:
|
|
|
+ mInt = 0;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ mInt = 1;
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ mInt = 1;
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ mInt = 0;
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ mInt = 1;
|
|
|
+ break;
|
|
|
+ case 6:
|
|
|
+ mInt = 0;
|
|
|
+ break;
|
|
|
+ case 7:
|
|
|
+ mInt = 2;
|
|
|
+ break;
|
|
|
+ case 8:
|
|
|
+ mInt = 1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ // mInt = 1;
|
|
|
+ } else {
|
|
|
+ while (tag) {
|
|
|
+ //如果当前地板是陷阱 检查上一个是不是陷阱如果是 就再随机一个
|
|
|
+ if (i > 0 && actorType[mInt].data.getComponent("actor").type == 2) {
|
|
|
+ if (nodearr[i - 1].getComponent("actor").type == 2) {
|
|
|
+ mInt = parseInt(Math.random() * (actorType.length - 0));
|
|
|
+ } else {
|
|
|
+ tag = false;
|
|
|
+ }
|
|
|
+ // 大于三的时候 如果 没有陷阱 我就创建一个陷阱
|
|
|
+ } else if (i > 3 && (actorType[mInt].data.getComponent("actor").type == 1 || actorType[mInt].data.getComponent("actor").type == 0)) {
|
|
|
+ let tempi = 0;
|
|
|
+ for (var x = 1; x < 4; x++) {
|
|
|
+ if (nodearr[i - x].getComponent("actor").type != 2) {
|
|
|
+ tempi++;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ if (tempi == 3) {
|
|
|
+ mInt = parseInt(Math.random() * (actorType.length - 0));
|
|
|
+ } else {
|
|
|
+ tag = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ tag = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ let node = cc.instantiate(actorType[mInt]);
|
|
|
+ if (i == 0) {
|
|
|
+ node = cc.instantiate(startActor);
|
|
|
+ } else if (i == arrp.length - 1) {
|
|
|
+ node = cc.instantiate(endActor);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ parentNode.addChild(node);
|
|
|
+ node.setPosition(arrp[i].x, arrp[i].y);
|
|
|
+ nodearr.push(node);
|
|
|
+ }
|
|
|
+
|
|
|
+ return nodearr;
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ init: function (parentNode) {
|
|
|
+ this.parentNode = parentNode;
|
|
|
+ return this;
|
|
|
+ },
|
|
|
+ getPrefabsName: function () {
|
|
|
+ return this.prefabsName;
|
|
|
+ },
|
|
|
+ addPrefabs: function (prefabsName, parentNode, callback) {
|
|
|
+ cc.loader.loadRes(prefabsName, function (err, texture) {
|
|
|
+ var node = this.parentNode;
|
|
|
+
|
|
|
+ if (parentNode != null) {
|
|
|
+ node = parentNode;
|
|
|
+ }
|
|
|
+
|
|
|
+ var prefab = cc.instantiate(texture);
|
|
|
+
|
|
|
+ // this.prefabsName = prefab.name;
|
|
|
+ this.removePrefabs(node, prefab.name);
|
|
|
+
|
|
|
+
|
|
|
+ if (node != null) {
|
|
|
+ node.addChild(prefab);
|
|
|
+ } else {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // this.dialogLuckView.active = false;
|
|
|
+ // this.GivePrize = this.getNode("GivePrize",this.showDialogs);
|
|
|
+ // //转
|
|
|
+ // this.Sunshine = this.getNode("Sunshine",this.GivePrize);
|
|
|
+ // //物品
|
|
|
+ // this.Rewards = this.getNode("Rewards",this.GivePrize);
|
|
|
+ // //关闭按钮
|
|
|
+ // this.close = this.getNode("close",this.showDialogs);
|
|
|
+
|
|
|
+
|
|
|
+ if (callback != null) {
|
|
|
+ callback(prefab);
|
|
|
+ }
|
|
|
+ }.bind(this));
|
|
|
+ },
|
|
|
+ addPrefabsName: function (prefabsName, parentNode, name, callback) {
|
|
|
+ cc.loader.loadRes(prefabsName, function (err, texture) {
|
|
|
+ var node = this.parentNode;
|
|
|
+
|
|
|
+ if (parentNode != null) {
|
|
|
+ node = parentNode;
|
|
|
+ }
|
|
|
+
|
|
|
+ var prefab = cc.instantiate(texture);
|
|
|
+ let prefabsName = "";
|
|
|
+ if (name != null) {
|
|
|
+ prefabsName = name;
|
|
|
+ } else {
|
|
|
+ prefabsName = prefab.name;
|
|
|
+ }
|
|
|
+ // this.prefabsName = prefab.name;
|
|
|
+ // this.removePrefabs(node,prefabsName);
|
|
|
+
|
|
|
+
|
|
|
+ if (node != null) {
|
|
|
+ node.addChild(prefab);
|
|
|
+ } else {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // this.dialogLuckView.active = false;
|
|
|
+ // this.GivePrize = this.getNode("GivePrize",this.showDialogs);
|
|
|
+ // //转
|
|
|
+ // this.Sunshine = this.getNode("Sunshine",this.GivePrize);
|
|
|
+ // //物品
|
|
|
+ // this.Rewards = this.getNode("Rewards",this.GivePrize);
|
|
|
+ // //关闭按钮
|
|
|
+ // this.close = this.getNode("close",this.showDialogs);
|
|
|
+
|
|
|
+
|
|
|
+ if (callback != null) {
|
|
|
+ callback(prefab);
|
|
|
+ }
|
|
|
+ }.bind(this));
|
|
|
+ },
|
|
|
+ removePrefabs: function (parentNode, prefabsName, success, fail) {
|
|
|
+
|
|
|
+ var node = this.parentNode;
|
|
|
+
|
|
|
+ if (parentNode != null) {
|
|
|
+ node = parentNode;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (node != null) {
|
|
|
+ if (node.getChildByName(prefabsName) != null) {
|
|
|
+ node.getChildByName(prefabsName).off(cc.Node.EventType.TOUCH_END);
|
|
|
+ node.getChildByName(prefabsName).destroy();
|
|
|
+ if (success != null) {
|
|
|
+ success();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (fail != null) {
|
|
|
+ fail();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ setOff: function (node) {
|
|
|
+ node.off(cc.Node.EventType.TOUCH_END);
|
|
|
+ },
|
|
|
+ setOn: function (node, callback) {
|
|
|
+ if (node != null) {
|
|
|
+ node.on(cc.Node.EventType.TOUCH_END, callback);
|
|
|
+ } else {
|
|
|
+ console.log("当前被放进来的node节点没有可以点击的名字 请关注此段警告");
|
|
|
+ }
|
|
|
+
|
|
|
+ return this;
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ getNode: function (name, parent) {
|
|
|
+ if (parent == null) {
|
|
|
+ if (this.parentNode.getChildByName(name) == null) {
|
|
|
+ // console.log("在",this.parentNode,"没有找到名字为"+name+"的node");
|
|
|
+ }
|
|
|
+ return this.parentNode.getChildByName(name);
|
|
|
+ } else {
|
|
|
+ if (parent.getChildByName(name) == null) {
|
|
|
+ // console.log("在",parent,"没有找到名字为"+name+"的node");
|
|
|
+ }
|
|
|
+ return parent.getChildByName(name);
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ //开始分享
|
|
|
+ /**
|
|
|
+ UtilsPrefabs.startSharePrefab(function () {
|
|
|
+ this.Building_t();
|
|
|
+ }.bind(this),function () {
|
|
|
+ this.Building_t();
|
|
|
+ }.bind(this));
|
|
|
+ * @param Success
|
|
|
+ * @param fail
|
|
|
+ */
|
|
|
+ startSharePrefab: function (Success, fail, callbackNode) {
|
|
|
+ var Canvas = cc.find("Canvas/UICamera");
|
|
|
+ UtilsPrefabs
|
|
|
+ .init(Canvas)
|
|
|
+ .addPrefabs(UtilsPrefabs.sharePrefab[1], null, function (node) {
|
|
|
+
|
|
|
+ if (callbackNode != null) {
|
|
|
+ callbackNode(node);
|
|
|
+ }
|
|
|
+ // node.y = -200;
|
|
|
+ // node.x = -20;
|
|
|
+ var gosharebtn = UtilsPrefabs.getNode("gosharebtn", node);
|
|
|
+ var img1 = UtilsPrefabs.getNode("img1", node);
|
|
|
+ var NewLabel1 = UtilsPrefabs.getNode("New Label", img1);
|
|
|
+ var img2 = UtilsPrefabs.getNode("img2", node);
|
|
|
+ var NewLabel2 = UtilsPrefabs.getNode("New Label", img2);
|
|
|
+ // NewLabel1.getComponent(cc.Label).string = 'x'+GlobalD.GameData.publicGive[0];
|
|
|
+ // NewLabel2.getComponent(cc.Label).string = 'x'+GlobalD.GameData.publicGive[1];
|
|
|
+
|
|
|
+ var close = UtilsPrefabs.getNode("close", node);
|
|
|
+ UtilsPrefabs.setOn(close, function () {
|
|
|
+ UtilsPrefabs.removePrefabs(Canvas, node.name);
|
|
|
+
|
|
|
+ // if (task.taskCursor == 4) {
|
|
|
+ // task.addTaskCount();
|
|
|
+ // task.removeTaskNodes();
|
|
|
+ // }
|
|
|
+ if (fail != null) {
|
|
|
+ fail();
|
|
|
+ }
|
|
|
+
|
|
|
+ }.bind(this));
|
|
|
+
|
|
|
+ UtilsPrefabs.setOn(gosharebtn, function () {
|
|
|
+ // console.log("点击分享按钮");
|
|
|
+
|
|
|
+
|
|
|
+ UtilsWX.sharebtn(function () {
|
|
|
+ UtilsPrefabs.setOff(gosharebtn);
|
|
|
+ GlobalD.GameData.PlusGolden(GlobalD.GameData.publicGive[0]);
|
|
|
+ GlobalD.GameData.PlusDiamond(GlobalD.GameData.publicGive[1]);
|
|
|
+
|
|
|
+ UtilsPrefabs
|
|
|
+ .init(Canvas)
|
|
|
+ .addPrefabs(UtilsPrefabs.sharePrefab[2], null, function (node) {
|
|
|
+ // cc.log(node.name+"***********000");
|
|
|
+ node.zIndex = 10000;
|
|
|
+ var MoneyFlyAnim = node.getChildByName('MoneyAnim').getComponent(cc.Animation);
|
|
|
+ MoneyFlyAnim.RemoveNode = function () {
|
|
|
+ node.destroy();
|
|
|
+ // cc.log('111111111',node);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (Success != null) {
|
|
|
+ Success();
|
|
|
+ }
|
|
|
+ }.bind(this));
|
|
|
+ UtilsPrefabs.removePrefabs(Canvas, node.name);
|
|
|
+ // if (task.taskCursor == 4) {
|
|
|
+ // task.addTaskCount();
|
|
|
+ // task.removeTaskNodes();
|
|
|
+ // }
|
|
|
+
|
|
|
+ }.bind(this))
|
|
|
+ }.bind(this));
|
|
|
+
|
|
|
+ },
|
|
|
+ loadResSpriteFrame: function (src, callback) {
|
|
|
+ cc.loader.loadRes(src, cc.SpriteFrame, function (err, texture) {
|
|
|
+ if (callback != null) {
|
|
|
+ callback(texture);
|
|
|
+ }
|
|
|
+ }.bind(this));
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+}
|