觉醒时刻
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

173 lines
5.9 KiB

1 week ago
import AppConfig from "../Config/AppConfig";
import AppPlatform from "./AppPlatform";
import AppSwitchConfig from "../Config/AppSwitchConfig";
export default class Utilit {
public static readonly ryw_OriginStageWidth_custom = 1334;
public static readonly ryw_OriginStageHeight_custom = 750;
public static readonly ryw_grayscaleMat_custom: Array<number> =
[0.3086, 0.6094, 0.0820, 0, 0,
0.3086, 0.6094, 0.0820, 0, 0,
0.3086, 0.6094, 0.0820, 0, 0,
0, 0, 0, 1, 0];
/**
* [0,range)
* @param range
*/
public static random_custom(range: number): number {
return Math.floor(Math.random() * range);
}
// /**
// * 将游戏中的尺寸转为设备尺寸
// * 常用与将游戏中自定义大小的框来放原生Banner
// * @param cwidth 在设计尺寸中的宽
// * @param bottom 在设计尺寸中距离底部的高度
// */
// public static convertDesignToFrameSizeToBottom(cwidth: number = 600, bottom: number = 0) {
// let nodeWidth = cwidth;
// let size = cc.view.getFrameSize();
// //let size = cc.size(sw, sh);
// //设计尺寸
// let size2 = cc.view.getDesignResolutionSize();
// let nodex = (size2.width - nodeWidth)/2;
// //算出缩放比例
// let scale = size.width / size2.width;
// //屏幕尺寸与设计尺寸计算
// let sHeight = size2.width * size.height / size.width;
// //坐标系Y轴相反
// let pointY = sHeight - pos.y;
// //左上角
// let left = nodex * scale;
// //左上角
// let top = pointY * scale
// //计算节点宽的处理
// let width = nodeWidth * scale;
// let tab = {}
// tab["left"] = left;
// tab["top"] = top;
// tab["width"] = width;
// return tab;
// }
/**
*
* Banner
* @param node
* @returns {"left":0,"top":0,"width":0}
*/
public static convertDesignToFrameSize_custom(node: cc.Node): any {
//节点的坐标 将一个相对于节点左下角的坐标位置转换到世界空间坐标系。
let pos = node.convertToWorldSpace(cc.v2(0, node.height));
let nodeWidth = node.width;//节点宽
let size = cc.view.getFrameSize();
//当前实际尺寸
let size3 = cc.view.getVisibleSize();
let canvasNode = cc.director.getScene().getChildByName('Canvas')
let scale = 1;
let _cheight: number = 0;
let _cwidth: number = 0;
if (canvasNode) {
let canvas = canvasNode.getComponent(cc.Canvas)
if (canvas.fitWidth && canvas.fitHeight) {
let scaleX = size.width / size3.width;
let scaleY = size.height / size3.height;
if (scaleX < scaleY) {
scale = scaleX;
_cwidth = size3.width;
_cheight = size.height * size3.width / size.width
} else {
scale = scaleY;
_cheight = size3.height;
_cwidth = size.width * size3.height / size.height
}
_cheight = (_cheight - size3.height) / 2
_cwidth = (_cwidth - size3.width) / 2
} else if (canvas.fitWidth) {
scale = size.width / size3.width
} else if (canvas.fitHeight) {
scale = size.height / size3.height
}
}
//坐标系Y轴相反
let pointY = size3.height - pos.y + _cheight;
//左上角
let left = pos.x * scale + _cwidth;
//左上角
let top = pointY * scale
//计算节点宽的处理
let width = nodeWidth * scale;
let tab = {}
tab["left"] = left;
tab["top"] = top;
tab["width"] = width;
return tab;
}
/**
* 16rgb #
* @param hex
*/
public static colorHex2Rgb_custom(hex: string): cc.Color {
let color = cc.color(75, 154, 228)
if (hex.length == 6) {
let r = parseInt("0x" + hex.slice(0, 2))
let g = parseInt("0x" + hex.slice(2, 4))
let b = parseInt("0x" + hex.slice(4, 6))
color.r = r;
color.g = g;
color.b = b;
}
return color;
}
public static checkVersions_custom(): boolean {
let cur = AppConfig.Versions_custom;
if (null === cur || "" === cur) {
return true;
}
if (AppPlatform.is_TT_GAME_custom())//抖音,字节跳动
{
return cur === AppSwitchConfig.getInstance_custom().getAppSwitchData_custom().ttcfg_custom.ttversions_custom;
}
else if (AppPlatform.is_OPPO_GAME_custom())//oppo小游戏
{
return cur === AppSwitchConfig.getInstance_custom().getAppSwitchData_custom().oppocfg_custom.oppoversions_custom;
}
else if (AppPlatform.is_QQ_PLAY_custom())//qq小游戏
{
return cur === AppSwitchConfig.getInstance_custom().getAppSwitchData_custom().qqcfg_custom.qqversions_custom;
}
else if (AppPlatform.is_WECHAT_GAME_custom())//微信小游戏
{
return cur === AppSwitchConfig.getInstance_custom().getAppSwitchData_custom().version_custom;
}
else if (AppPlatform.is_WECHAT_GAME_custom()) //VIVO 小游戏
{
return cur === AppSwitchConfig.getInstance_custom().getAppSwitchData_custom().vivocfg_custom.vivoversions_custom;
}
// else if (AppPlatform.is_BD_GAME_custom())//百度小游戏
// {
// return cur === AppSwitchConfig.getInstance_custom().getAppSwitchData_custom().bdcfg_custom.version_custom;
// }
else {
return true;
}
}
}