cocos里能自动切图吗?

image

cocos creator里能自动切分这种图片吗? 就像unity和godot里那样,设置行数,列数就自动切成小图那种

1赞

好功能4.X出来

2赞

PngSplit

插件吗????

不是插件 PngSplit: PngSplit,合图分割工具, 是TexturePacker的逆向转换工具, 也可导出导入蒙板。

那就是说没有内置的咯,怪不得哪里也找不到。。,感觉这就是个基本功能,感觉cocos creator做产品典型的程序员思维,没有站在用户的角度

image

5赞

大牛 :grinning:

这个我复制过来的啦,个人认为序列帧图片切割是美工做的事情,cocos有自己的考虑,texturePacket,pngplist都挺好用的,你可以试试 不行就自己写个方法

这个功能真的很方便,拖过来直接用,可以直接用来做帧动画,

这代码没有动不动来个const,看着就是舒服 :+1:

     /**
     * 裁剪矩形精灵帧方法
     * @param origin 原始精灵帧
     * @param row 裁剪行数
     * @param column 裁剪列数
     * @returns 返回裁剪的精灵帧矩阵(左上角为原点)
     */
    export function cutRectFrames(origin: cc.SpriteFrame, row: number, column: number): cc.SpriteFrame[][] {
        //声明一个矩阵用于存放裁剪的精灵帧(左上角为原点)
        let spriteFrames: cc.SpriteFrame[][] = Array.from({ length: row }, () => Array(column).fill(null));
        //计算裁剪单位尺寸
        let width: number = origin.getRect().width / row,
            height: number = origin.getRect().height / column;
        //嵌套for循环遍历矩阵(左上角为原点)
        for (let i: number = 0; i < row; i++) {
            for (let j: number = 0; j < column; j++) {
                //计算裁剪单位位置(左上角为原点)
                let x: number = j * width,
                    y: number = i * height;
                //根据位置和尺寸裁剪并存放到对应位置
                let rected: cc.SpriteFrame = new cc.SpriteFrame(origin.getTexture(), new cc.Rect(x, y, width, height));
                spriteFrames[i][j] = rected;
            }
        }
        //返回裁剪的精灵帧矩阵(左上角为原点)
        return spriteFrames;
    }

我之前做代码方式创建AnimationClip的时候也有写过一个 不过后面没用上 我是用二维数组去存裁剪好的矩形精灵帧 这样方便肉眼定位(小部分需求用到) :rofl:

1赞

连局部变量都指定了类型,讲究~~ :+1:

我们新手是这样的 :joy: