을 CCSpriteBatchNode에 추가 :CCSprite 클립은이 코드 내 스프라이트를 클리핑하고있어
//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에 추가하는 데 문제가 있습니다.
도움이 될 것입니다.
설명 주셔서 감사합니다. 직접 메인 레이어에 추가해야 할 것입니다. 거기에 더 좋은 접근법이 있습니까? 다시 한 번 감사드립니다! –