0

タッチしたときにセレクターを呼び出すためにスプライトのサブクラスを取得するにはどうすればよいですか?

タッチが終了したときに、スプライトがタッチに反応してセレクターを呼び出すようにします。タッチに反応させる方法は知っていますが、呼び出すセレクターを指定する方法がわかりません。

何か助けはありますか?

4

2 に答える 2

2

スプライトにターゲットとセレクターを設定できるようにしたいということですか?

これを行うには、ターゲットとセレクターをインスタンス変数に格納するメソッドを設定します。

__weak id _target;
SEL _selector;

-(void)setTarget:(id)target andSelector:(SEL)selector
{
     _target = target;
     _selector = selector;
}

-(void)ccTouchesEnded...
{
    [_target performSelector:_selector];
}
于 2012-11-01T00:16:30.670 に答える
1

レイヤーで、最初にタッチを有効にし、ccTouchesBegan を追加してタッチを追跡します。

self.isTouchEnabled = YES;

この機能を使用して、タッチを見つけることができます。

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *myTouch = [touches anyObject];
    CGPoint touchLocation = [myTouch locationInView:[myTouch view]];
    touchLocation = [[CCDirector sharedDirector] convertToGL:location];

    if(CGRectContainsPoint([sprite boundingBox], touchLocation) )
    {
        [sprite youTouched];
    }
}
于 2012-10-31T18:58:19.487 に答える