Cocos2d仅显示CCSprite的一部分

时间:2011-09-07 16:20:30

标签: cocos2d-iphone ccsprite

是否有可能仅显示CCSprite的一部分?

contentSize属性没有良好结果的接缝。

3 个答案:

答案 0 :(得分:6)

我认为您可能需要为此创建一个新的精灵。一般的伪代码就是这个。

CCTexture2D *origTexture = originalSprite->getTexture();

CGRect rect = {0, 0, 20, 20};
CCSprite *destSprite = CCSprite::spriteWithTexture(origTexture, CGRect);

答案 1 :(得分:4)

doc_180和James的答案都是通过使用纹理的一部分创建新的CCSprite来实现的,但是如果你使用裁剪方法,你将获得使用完整纹理但有能力的CCSprite只在屏幕上绘制一部分。此方法的一个优点是,您可以修改想要显示或隐藏的部分的大小,而不必一次又一次地重新创建CCSprite(或反复替换纹理)。

因此,要使用剪切方法,只需下载ClippingNode class from here,然后将要剪切的CCSprite添加到该ClippingNode。然后调用其中一个方法来指定限制绘图的区域。我目前正在使用它来创建一个进度条,所以我肯定它确实很有效。

答案 2 :(得分:0)

获取[sprite displayedFrame],更改frame,然后使用该精灵框架创建新的精灵:CCSprite *sprite2 = [CCSprite spriteWithSpriteFrame:frame]