我正在尝试在 iOS 的 iPad 应用程序中创建绘画功能。我已经设法通过触摸使颜色出现,但我想重新创建 Photoshop 的多重功能,以便底层的黑白图像继续通过颜色显示。我开始使用不透明度进行操作,但越过同一个位置会导致它最终被移除。我正在使用 cocos2d,这是示例代码。
in header
CCSprite *background;
CCRenderTexture *target;
CCSprite *brush;
in init method:
background = [CCSprite spriteWithFile:@"background.png"];
background.position = ccp(self.size.width/2, self.size.height/2);
[self addChild: background z:-1];
target = [[CCRenderTexture alloc] initWithWidth:self.size.width height:self.size.height pixelFormat:kCCTexture2DPixelFormat_RGBA8888];
[target setPosition:ccp(self.size.width/2, self.size.height/2)];
brush = [[CCSprite spriteWithSpriteFrameName:@"brush_spot.png"] retain];
[brush setColor:ccRED];
in -(void) ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event method:
[target begin];
[brush setPosition:<CALCULATED POSITION>];
[brush visit];
[target end];
我已经尝试在画笔上使用不同的混合功能,但没有任何东西能够创造出我想要的外观。当直接在背景顶部添加精灵并将其混合功能设置为时,我确实得到了正确的效果
[sprite setBlendFunc:(ccBlendFunc) { GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA }];
但是当我尝试在画笔上使用这个混合功能时,屏幕上什么也没有出现。
谢谢伊恩