【求助】获取图集后,得到小图,再取小图一个区域显示,出错

  • Creator 版本号:1.5.2

  • 目标平台:(Web / iOS / Android / 模拟器)

      var self = this;
      cc.loader.loadRes("11", cc.SpriteAtlas, function (err, atlas) {
      	if( err ) { 
      		cc.error(err.message || err);
      		return; 
      	}
      	var frame = atlas.getSpriteFrame("1");
      	frame.setRect(cc.rect(0,0,64,64));
      	self.icon.spriteFrame = frame;
      });
    

cc.loader.loadRes得到图集

atlas.getSpriteFrame(“1”)得到小图后,
确定也是图集中名字为1的资源

期望:显示小图中的一个区域,frame.setRect(cc.rect(0,0,64,64))

但是最终显示出来的却是整个图集的cc.rect(0,0,64,64)这个区域的图,而且旋转了
NewProject152.rar (194.3 KB)

@panda

这不是错误,setRect 本来就是针对实际渲染的图片,不管你原来是大图还是小图。
你这里应该先 getRect,然后针对这个 rect 再自己进一步裁剪宽高,然后再 set 回去。

解决了,加了对SpriteFrame的isRotated判断,再计算矩形的坐标就可以了