动态修改CCSprite的texture并保持固定大小

<span style="“font-family:arial;line-height:normal;”">最近在贴图的时候遇到点问题,比如说有一个CCSprite,我想让他始终保持200 * 200 的大小。<div style="“font-family:arial;line-height:normal;”">

现在我使用一张57 * 57 的图片来作为他的texture,当然就需要拉伸了:

CCSprite *sprite = addImage:@"Icon.png"]];
sprite.anchorPoint = CGPointZero;
sprite.position = ccp(240, 160);
;
sprite.contentSize = CGSizeMake(200, 200);
;
;
CCLOG(@"%0.1f, %0.1f, %0.1f, %0.1f, %0.1f, %0.1f,", sprite.contentSize.width, sprite.contentSize.height, sprite.texture.contentSize.width, sprite.texture.contentSize.height, sprite.scaleX, sprite.scaleY);

这样就可以达到效果了,输出结果是(和想象的一样):
200.0, 200.0, 57.0, 57.0, 3.5, 3.5

然后,尝试动态修改texture:
CCSprite *sprite = (CCSprite *);
sprite.texture = addImage:@"Default.png"];
//;
//;
CCLOG(@"%0.1f, %0.1f, %0.1f, %0.1f, %0.1f, %0.1f,", sprite.contentSize.width, sprite.contentSize.height, sprite.texture.contentSize.width, sprite.texture.contentSize.height, sprite.scaleX, sprite.scaleY);

注意注释掉的代码~ 输出结果:
200.0, 200.0, 320.0, 480.0, 3.5, 3.5

这里的缩放因子感觉不是我要的,x: (200 / 320) = 0.6 y: (200 / 480) = 0.4

但是,显示的结果却是正确的,图片呗所当到了正确的大小。

如果我试着把注释的代码恢复,那么我得到了想要的输出结果,但是显示的效果,图片大小远远的小于200 * 200。


所以这问题很搞,我新建一个CCSprite+texture,然后指定一个大小,通过setScale,我可以一直得到想要的结果,这个时候即使是动态改变指定大小,一样可以完美。

然后一旦我要改变texture,换个图片,就出问题了。想要还保持大小,只能不调用scale,但是之后如果我还想改变指定大小,那图片大小就完全不对了.......


希望有经验的朋友可以指点一下:)