我希望在触摸精灵时检测触摸并对其做出反应,但我不希望使用自己的类覆盖它(因此,在touchesBegan方法中处理)。我只是希望它被视为场景中的另一个精灵。我目前正在这样做:
UITouch * touch = [touches anyObject];
CGPoint location = [touch locationInNode:self];
SKSpriteNode *touchedNode = (SKSpriteNode *)[self nodeAtPoint:location];
if(touchedNode == self.AnswerButton) {
NSLog(@"ANSWER button pressed.");
return;
}
if(touchedNode == self.HangupButton) {
NSLog(@"HANGUP button pressed.");
[self hangUp];
return;
}
但是,我想知道是否有更直接的方式来访问self.HangupButon和self.AnswerButton孩子的精灵?
答案 0 :(得分:1)
你几乎把它钉在了一边,而不必继承。
逻辑是:
1)触摸场景
2)确定节点
3)基于节点触摸的过程。
我唯一可能做的就是让它成为一个单独的函数,并在第二个if上添加else(如果这是Swift,我会说使用一个开关)
答案 1 :(得分:0)
添加到精灵中的轻击手势识别器可能就是您要找的东西。
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIGestureRecognizer_Class/