marineparkclient/assets/script/ToolFunc.ts
2023-08-15 11:09:12 +08:00

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) {}
}