2011-09-07 44 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);