请问切割一张图片变成texture2D

我的需求是切割一个大图为一些小图。

使用cc.SpriteFrame.setRect方法吗

卧槽,能不能来点人

有人回答一下吗

另外咨询一下,有没有办法在一个Sprite上通过offset去drawTexture

this._texture是一张完整的大图
let tex = new cc.SpriteFrame(this._texture, cc.rect(width, height, width, height));
let node = new cc.Node(“sp”);
node.parent = this.node;
let sp = node.addComponent(cc.Sprite);
sp.spriteFrame = tex;

1赞

我目前也是这么做的。用的rect去裁剪。

但我觉得并不是很优雅

而且我感觉SpriteFrame明显比Texture2D要重的多

你是怎么感觉到SpriteFrame比Texure2D重的呀?

Texture2D对应的是真正的纹理,SpriteFrame只是对Texture2D作纹理渲染的控制,比如显示哪些部分。

明显就比Texture2D轻很多。

是这样的。Texture作为贴图,SpriteFrame是封装了Texture2D,扩展了Texture2D。我们让SpriteFrame持有某一个Texture2D的引用,并通过他去设置显示隐藏裁剪等操作。里面会多出来很多方法和属性。这就决定了SpriteFrame比Texture2D要重。

1赞

请问解决了吗,我现在也是想要Texture2D,我想把 SpriteAtlas里的spriteFrame转成一张张的Texture2D,但是没有找到什么方法

楼上不是已经给去答案了,你还不明白话,可以去看一下SpriteFrame的API。
Cocos Creator - API: SpriteFrame

没有,最后在这个帖子找到了方法。把SpriteAtlas的原始texture2D再切割一下