Cocos2d. 正确的混合模式?

5

我修改了标准的“Hello World”示例:

        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];

我得到了:

我收到:

图片 在此输入图像描述

如何删除/剪切“Hello World”标签周围的背景?


你想要实现什么?使用 {GL_ZERO, GL_SRC_ALPHA},你将背景颜色乘以源透明度,并且完全不绘制源颜色,这会导致在源 alpha 为 0 的地方出现黑色,而在源不透明的地方出现背景颜色。 - Kreiri
2
我想要得到一个渐变字体,但我不能让自己购买像Glyph Editor这样的东西。 - user2083364
1个回答

3

我的当前解决方案是像这样初始化CCLabelTTF:

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

在我的例子中,size是[CCDirector sharedDirector].winSize。

欢迎提出其他建议。


这个解决方案仅适用于2层,但会擦除第三层和其他层。这意味着标签周围的区域是黑色的,而不是透明的。 - user2083364

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接