kunpolibrary/src/cocos/CocosAdapter.ts
2025-05-11 18:21:30 +08:00

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