2011-09-07 69 views

回答

4

两个doc_180的和詹姆斯的答案通过创建使用纹理的一部分新的CCSprite工作,但如果你正在使用裁剪方法,你会得到一个使用质感十足CCSprite但有能力的唯一在屏幕上绘制一部分。这种方法的一个优点是你可以修改或大或小,你要显示或隐藏在运行,而不是一次又一次地重新创建CCSprite(或一次又一次地更换纹理)的部分。

因此,使用裁剪方法,只需下载ClippingNode class from here,并添加要修剪到ClippingNode的CCSprite。然后你调用其中的一个方法来指定限制绘图的区域。我目前使用它来创建一个进度条,所以我肯定知道它的伟大工程。

+0

这是更有用和启发我延伸CCSprite解决一个更复杂的问题。 – mxg

0

获取[sprite displayedFrame],改变了frame,并使用该spriteframe一个新的sprite:CCSprite *sprite2 = [CCSprite spriteWithSpriteFrame:frame]

6

我想你可能要为此创建新的精灵。一般的伪代码是这样的。

CCTexture2D *origTexture = originalSprite->getTexture(); 

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