mirror of
https://github.com/Gongxh0901/kunpolibrary
synced 2025-05-15 06:44:17 +00:00
60 lines
1.7 KiB
TypeScript
60 lines
1.7 KiB
TypeScript
/**
|
|
* @Author: Gongxh
|
|
* @Date: 2024-12-08
|
|
* @Description:
|
|
*/
|
|
|
|
import { screen as ccScreen, view } from "cc";
|
|
import { Adapter } from "../global/Adapter";
|
|
import { size } from "../global/header";
|
|
import { debug } from "../tool/log";
|
|
|
|
export class CocosAdapter extends Adapter {
|
|
/**
|
|
* 获取屏幕像素尺寸
|
|
* @returns {size}
|
|
* @internal
|
|
*/
|
|
protected getScreenSize(): size {
|
|
let windowSize = ccScreen.windowSize;
|
|
let width = Math.ceil(windowSize.width / view.getScaleX());
|
|
let height = Math.ceil(windowSize.height / view.getScaleY());
|
|
return { width, height };
|
|
}
|
|
|
|
/**
|
|
* 获取设计尺寸
|
|
* @returns {size}
|
|
* @internal
|
|
*/
|
|
protected getDesignSize(): size {
|
|
let designSize = view.getDesignResolutionSize();
|
|
return { width: designSize.width, height: designSize.height };
|
|
}
|
|
|
|
/**
|
|
* 设置尺寸发生变化的监听
|
|
* @param callback 回调
|
|
* @internal
|
|
*/
|
|
protected registerResizeCallback(callback: (...args: any) => void): void {
|
|
if (ccScreen && ccScreen.on) {
|
|
ccScreen.on("window-resize", (...args: any) => {
|
|
debug("window-resize");
|
|
callback(...args);
|
|
}, this);
|
|
ccScreen.on("orientation-change", (...args: any) => {
|
|
debug("orientation-change");
|
|
callback(...args);
|
|
}, this);
|
|
ccScreen.on("fullscreen-change", (...args: any) => {
|
|
debug("fullscreen-change");
|
|
callback(...args);
|
|
}, this);
|
|
} else {
|
|
// 3.8.0之前的版本
|
|
view.setResizeCallback(callback);
|
|
}
|
|
}
|
|
}
|