0

如何让精灵的子类在触摸时调用选择器?

我希望 Sprite 对触摸做出反应并在触摸结束时调用选择器。我知道如何让它对触摸做出反应,但我不知道如何指定我应该调用哪个选择器。

有什么帮助吗?

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 回答