如何在触摸时获取精灵的子类来调用选择器?
我希望Sprite能够对触摸做出反应并在触摸结束时调用选择器。我知道如何让它对触摸作出反应,但我不知道如何指定我应该调用哪个选择器。
任何帮助?
答案 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];
}
}