CocosCreator 限制图片大小组件(用于图片尺寸不一样时,固定图片大小,防止超出范围)

 

当装备或道具图片放在物品栏中,物品栏背景固定大小,但是装备或道具图片尺寸和高宽比例可能大小不一样。

当根据id动态加载图标后,为了不让图片超出范围或显示得很小,需要限定图片大小。

CocosCreator  限制图片大小组件(用于图片尺寸不一样时,固定图片大小,防止超出范围)

 

ImgFixedSize.ts组件会让图标固定大小显示,并保持高宽比,无论动态加载或静态图片都有效。

const { ccclass, property } = cc._decorator;

/**
 * 图片限制尺寸
 * @author chenkai 2021.6.24
 */
@ccclass
export default class ImgFixedSize extends cc.Component {

    @property({ type: cc.Integer, tooltip: "固定尺寸" })
    fixedSize: number = 0;

    onLoad() {
        this.node.on(cc.Node.EventType.SIZE_CHANGED, this.onSizeChanged, this);
        this.onSizeChanged();
    }

    /**当尺寸变化时,重置node节点大小 */
    onSizeChanged() {
        var width = this.node.width;
        var height = this.node.height;
        var max = Math.max(width, height);
        this.node.scale = this.fixedSize / max;
    }
}

  

在图标所在节点上绑定ImgFixedSize.ts组件,并设置固定大小为50。cc.Sprite属性SizeMode需要设置为TRIMMED并勾选Trim,表示图片大小为裁剪透明像素后的大小。

CocosCreator  限制图片大小组件(用于图片尺寸不一样时,固定图片大小,防止超出范围)

 

 

现在用3张图片来测试,一张大人物图593x800,一个小刀图标38x38,一个小刀图标64x64。

 

 CocosCreator  限制图片大小组件(用于图片尺寸不一样时,固定图片大小,防止超出范围)

 

 3张图会等比例缩放到<=50像素,不会超出边框。

CocosCreator  限制图片大小组件(用于图片尺寸不一样时,固定图片大小,防止超出范围)

 

CocosCreator 限制图片大小组件(用于图片尺寸不一样时,固定图片大小,防止超出范围)

上一篇:GoodsList组件的实现思路


下一篇:太空大战背景移动的几种方式