// Learn TypeScript: // - https://docs.cocos.com/creator/manual/en/scripting/typescript.html // Learn Attribute: // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html const {ccclass, property} = cc._decorator; @ccclass export default class ToolFunc extends cc.Component{ // LIFE-CYCLE CALLBACKS: senderObject:cc.Sprite = null; // onLoad () {} //解析用pb数组对象转化为string类型传输 Uint8ArrayToString(fileData){ var dataString = ""; for (var i = 0; i < fileData.length; i++) { dataString += String.fromCharCode(fileData[i]); } return dataString } //解析用服务器传输的string消息转化为可解析的pb数组 stringToUint8Array(str){ var arr = []; for (var i = 0, j = str.length; i < j; ++i) { arr.push(str.charCodeAt(i)); } var tmpUint8Array = new Uint8Array(arr); return tmpUint8Array } getRadomDeviceId() { let deviceIdStr:string = ""; deviceIdStr = deviceIdStr + Math.round((Math.random()*1000000)); return deviceIdStr; } getRadomUuId() { let uuidStr:string = ""; uuidStr = uuidStr + Math.round((Math.random()*10000000)); return uuidStr; } getNodePosition(sender) { return cc.v2(sender.node.x,sender.node.y); } getNodeRoutePosition(sender) { return cc.v2(0,sender.node.y - (200 * Math.random())); } getNodeMiddlePosition(sender) { return cc.v2(sender.x,sender.node.y - 100); } openAction(sender) { sender.active = true; cc.tween(sender) .to(0,{"scale":0.9}) .to(0.1,{"scale":1.1}) .to(0.1,{"scale":1}) .start(); // sender.runAction( // cc.sequence( // cc.scaleTo(0,0.9), // cc.callFunc(()=>{sender.active = true}, // cc.scaleTo(0.1,1.1), // cc.scaleTo(0.1,1), // ))); } closeAction(sender) { cc.tween(sender) .to(0.1,{"scale":1.1}) .to(0.1,{"scale":0.9}) .call(()=>{ sender.active = false }) .start(); } setSpriteFrame(str:string,sender:cc.Sprite) { let self = this; self.senderObject = sender; cc.resources.load(str,cc.SpriteFrame,function(err,spriteFrame:cc.SpriteFrame) { self.senderObject.spriteFrame = spriteFrame; }); } radomIfDoAction() { if(Math.random()>0.5) { return true; } return false; } getPosition(sender:cc.Node) { return cc.v2(sender.x,sender.y); } getDistance(x:number,y:number) { if(x>y) { return [(x-y),-1] } else { return [(y-x),1] } } private static _ins:ToolFunc; public static get ins():ToolFunc{ if(this._ins == null){ this._ins = new ToolFunc(); } return this._ins; } // update (dt) {} }