Cocos2d:如何在触摸时获取sprite的子类来调用选择器?

时间:2012-10-31 18:48:08

标签: cocoa-touch cocos2d-iphone sprite

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

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

任何帮助?

2 个答案:

答案 0 :(得分:2)

你的意思是你希望能够在精灵上设置目标和选择器吗?

您可以通过设置将目标和选择器存储在实例变量中的方法来实现。

__weak id _target;
SEL _selector;

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

-(void)ccTouchesEnded...
{
    [_target performSelector:_selector];
}

答案 1 :(得分: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];
    }
}