2013-03-18 14 views
5

I zmodyfikowany standardowy przykład "Hello World":cocos2d. Prawidłowe mieszanie?

 CCSprite *sprite = [CCSprite spriteWithFile:@"Untitled-1.png"]; 
     CGSize winSize = [CCDirector sharedDirector].winSize; 
     sprite.position = ccp(winSize.width/2, winSize.height/2); 
     [label setBlendFunc:(ccBlendFunc){GL_ZERO, GL_SRC_ALPHA}]; 
     [label setColor:ccBLACK]; 
     [sprite addChild:label]; 
     [self addChild:sprite]; 

mam:

image enter image description here

Jak usunąć/wyciąć tło wokół "Hello World" etykietę?

+0

co próbujesz osiągnąć? z {GL_ZERO, GL_SRC_ALPHA} mnożysz kolor tła przez źródło alfa i nie rysujesz w ogóle koloru źródłowego, co daje czarny kolor, gdzie źródło alfa było 0, a kolor tła, w którym źródło było nieprzezroczyste. – Kreiri

+2

Chcę uzyskać czcionkę gradientową i nie mogę pozwolić sobie na zakup czegoś takiego jak edytor glifów. – user2083364

Odpowiedz

3

moje obecne rozwiązanie jest init CCLabelTTF coś takiego:

CCLabelTTF *label = [CCLabelTTF labelWithString:@"Hello World" fontName:@"Marker Felt" fontSize:64 dimensions:size hAlignment:kCCTextAlignmentCenter vAlignment:kCCVerticalTextAlignmentCenter]; 

gdzie rozmiar jest [CCDirector sharedDirector] .winSize dla mojego examle.

wszelkie inne sugestie są mile widziane

+0

to rozwiązanie działa idealnie tylko dla 2 warstw, ale usuwa trzecią i inne warstwy. Oznacza to, że obszar wokół etykiety jest czarny, a nie przezroczysty – user2083364