Cocos2d iphone Cocos2d仅显示CCSprite的一部分

Cocos2d iphone Cocos2d仅显示CCSprite的一部分,cocos2d-iphone,ccsprite,Cocos2d Iphone,Ccsprite,是否有可能只显示一个CCSprite的一部分 它表明contentSize属性的结果不好。获取[sprite displayedFrame],更改该属性的帧,并使用该spriteframe创建新的sprite:CCSprite*sprite2=[CCSprite spriteWithSpriteFrame:frame]我认为您可能需要为此创建一个新的精灵。一般的伪代码如下所示 CCTexture2D *origTexture = originalSprite->getTexture();

是否有可能只显示一个CCSprite的一部分


它表明
contentSize
属性的结果不好。

获取
[sprite displayedFrame]
,更改该属性的
帧,并使用该spriteframe创建新的sprite:
CCSprite*sprite2=[CCSprite spriteWithSpriteFrame:frame]

我认为您可能需要为此创建一个新的精灵。一般的伪代码如下所示

CCTexture2D *origTexture = originalSprite->getTexture();

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

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


因此,要使用剪辑方法,只需下载,并将您想要剪辑的CCSprite添加到该剪辑节点。然后调用其中一个方法来指定要将图形限制到哪个区域。我目前正在使用它创建一个进度条,因此我确信它工作得很好。

这更有用,并启发我扩展CCSprite以解决更复杂的问题。