1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import { Button, Sprite, view, Node, ScrollView, Vec2, Vec3, TiledLayer, Size } from "cc";
- import List from "../list/List";
- export class UIHelper {
- //将一个按钮置灰
- static buttonEnable(button: Button, enable: boolean) {
- if (button) {
- let sprite = button.getComponent(Sprite);
- (sprite) && (sprite.grayscale = !enable);
- button.interactable = enable;
- }
- }
- //获取设计分辨率
- static getDesignSize() {
- return view.getDesignResolutionSize();
- }
- //设置节点layer
- static setLayer(node: Node, layer: number) {
- if (node) {
- node.layer = layer;
- node.walk((child) => {
- child.layer = layer;
- });
- }
- }
- //销毁一个List或者是ScrollView
- static destroyList(view: List | ScrollView, name: any) {
- if (view) {
- view.node.active = true;
- for (let child of view.content.children) {
- let comp = child.getComponent(name);
- if (comp && comp["onClose"]) {
- let callback: Function = comp["onClose"];
- callback.apply(comp);
- }
- }
- view.node.destroy();
- view = null;
- }
- }
- //将OpenGL坐标转为Tiledmap坐标
- static openGLToTiled(pos: Vec3, map_size: Size, tile_size: Size) {
- let out = new Vec2();
- if (pos && map_size && tile_size) {
- out.x = Math.floor(pos.x / tile_size.width);
- out.y = Math.floor((map_size.height * tile_size.height - pos.y) / tile_size.height);
- }
- return out;
- }
- //将Tiledmap坐标转为OpenGL坐标
- static tiledToOpenGL(pos: Vec3, map_size: Size, tile_size: Size) {
- let out = new Vec2();
- if (pos && map_size && tile_size) {
- out.x = pos.x * tile_size.width + tile_size.width / 2;
- out.y = (map_size.height - pos.y) * tile_size.height - tile_size.height / 2;
- }
- return out;
- }
- }
|