2011-04-03 12 views
0

を変更することがあります。私は画面をタッチしながら、私のスプライトは、私はアクションを開発するために、私はこのEFECTを取得することはできませんしようとしています

私は画面をタッチしながら、私のスプライトが別のもののために変更することがあり、私はオフにハングアップするときそれは初期状態に戻る必要があります。画面に触れてスプライトを変更する時刻をどうやって検出できますか?

ご協力いただきありがとうございます。

+1

私たちは、問題の詳細を知る必要があります。謝辞は、開発しているプラ​​ットフォーム、使用しているプラ​​ットフォーム、見ている問題点をもう少し詳しく説明します。 –

答えて

1

変数normalSpriteおよびpressedSpriteを使用してCCNodeのサブクラスを作成します。それはタッチを扱うように初期化子では、これを追加します。

[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES]; 

は、画面をタッチした時に処理するために、このシグネチャを持つメソッドを追加します。

-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event { 
    // Check that touch is within boundaries of this object 
CGPoint touchLocation = [self convertTouchToNodeSpace:touch]; 
    if (!CGRectContainsPoint(CGRectMake(0, 0, self.boundingBox.size.width, self.boundingBox.size.height), touchLocation)) { 
     return TRUE; 
    } 
    // Switch image 
    [self removeChild:normalSprite cleanup:NO]; 
    [self addChild:pressedSprite]; 

    return TRUE; 
} 

は時に処理するために、このシグネチャを持つメソッドを追加します。指が消灯:

-(void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event { 
    // Switch image back 
    [self removeChild:pressedSprite cleanup:NO]; 
    [self addChild:normalSprite]; 
} 

また、タッチの境界の内側に外と後退する状況を処理するためにccTouchMoved(他のすべてccTouchEndedと同じ)を追加することができますオブジェクト。

関連する問題

 関連する問題