150 lines
3.2 KiB
TypeScript
150 lines
3.2 KiB
TypeScript
// 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) {}
|
|
}
|