1
我剪輯我的精靈與此代碼:夾了CCSprite加入CCSpriteBatchNode
//At my CCSprite subclass m.
-(void)visit
{
CGPoint worldOrg = [self convertToWorldSpace:ccp(0, 0)];
CGPoint dest = [self convertToWorldSpace:ccp(self.contentSize.width, self.contentSize.height)];
CGPoint dims = ccpSub(dest, worldOrg);
glEnable(GL_SCISSOR_TEST);
glScissor(worldOrg.x, worldOrg.y, dims.x, dims.y);
#define SHOW_CLIPPED_AREA 1
#if SHOW_CLIPPED_AREA
//Draws a red rectangle showing clipped area
ccDrawSolidRect(ccp(0, 0), ccp(1024, 1024), ccc4f(64, 0, 0, 128));
#endif
[super visit];
glDisable(GL_SCISSOR_TEST);
}
然後,只需創建精靈像往常一樣,調整sprite.contentSize屬性無論我需要:
CCSprite aSprite = [CCSprite spriteWith...];
aSprite.contentSize = CGSizeMake(20,20);
//Add it to my layer
[self addChild:aSprite];
它按預期工作!
問題...
當它添加到CCSpriteBatchNode,它不會夾精靈......它顯示了精靈,但沒有裁剪它。
有人可以幫我解決這個問題,我到處搜索,沒有回答這個問題。
我也使用了Steffen Itterheim的ClippingNode類,但是我也有問題將它添加到CCSpriteBatchNode中。
任何幫助將不勝感激。
感謝您的解釋,我想我必須將它們直接添加到主圖層。有沒有更好的方法呢?再次感謝! – 2013-02-10 00:36:30