以下のコードを使用して、テクスチャをスクラッチします。しかし、スクラッチ オフ テクスチャのパーセンテージを検出する方法がわかりません。たとえば、ユーザーが 80% をスクラッチするとフェードアウトするはずです。誰でもこれで私を助けることができますか?
-(id) init
{
if( (self=[super init] ))
{
CGSize size = [[CCDirector sharedDirector] winSize];
[self setIsTouchEnabled:YES];
reset = YES;
bg = [CCSprite spriteWithFile:@"background.png"];
bg.position = ccp( size.width /2 , size.height/2 );
[self addChild:bg z:1];
burnSprite = [CCSprite spriteWithFile:@"fire.png"];
[burnSprite setBlendFunc:(ccBlendFunc) { GL_ZERO, GL_ONE_MINUS_SRC_ALPHA }];
[burnSprite retain];
burnSprite.scale = 0.7f;
// Scratch Background
scratchBg = [[CCSprite spriteWithFile:@"scratchBg.png"] retain];
scratchBg.position = ccp(size.width / 2, size.height / 2);
// Scratch Layer
scratchLayer = [CCRenderTexture renderTextureWithWidth:size.width height:size.height];
scratchLayer.position = ccp(size.width / 2 , size.height / 2);
[[scratchLayer sprite] setBlendFunc: (ccBlendFunc) { GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA }];
[self addChild:scratchLayer z:2];
[self schedule: @selector(tick:)];
}
return self;
}
- (void) drawTexture
{
// Update the render texture
[scratchLayer begin];
// Limit drawing to the alpha channel
glColorMask(0.0f, 0.0f, 0.0f, 1.0f);
// Draw
[burnSprite visit];
// Reset color mask
glColorMask(1.0f, 1.0f, 1.0f, 1.0f);
[scratchLayer end];
}