0

以下のコードを使用して、テクスチャをスクラッチします。しかし、スクラッチ オフ テクスチャのパーセンテージを検出する方法がわかりません。たとえば、ユーザーが 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];

}
4

1 に答える 1

0

この質問は、cocos2d-iphone フォーラムに寄せられました。 http://www.cocos2d-iphone.org/forum/topic/12557

問題を解決するためのサンプル コードの優れた例は、ここにあります。 http://abitofcode.com/2012/04/ccrendertexture-category-percentage-complete/

于 2012-11-30T19:46:59.487 に答える