- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInNode:self.mapStaticGeometry];
SKNode *node = [self.mapStaticGeometry nodeAtPoint:location];
if ([node.name isEqualToString:@"church"]) {
VZChurch *obj = (VZChurch *)node;
obj.requestedAnimation = VZAnimationStateTouch;
[obj runAnimation];
} else if ...n iterations
}
答案 0 :(得分:0)
避免您要求的最佳方法是为每个节点子类化SKNode
(或SKSpriteNode
)。然后,这允许您处理子类节点内的touchesBegan
。
因此,只需将SKNode(或SKSpriteNode,因为VZChurch是精灵)子类化,并处理touchesBegan
中的VZChurch
,它就是它自己的方法文件。然后,如果你有其他SKSprites,做同样的事情,子类化每个sprite并处理它们各自的子类方法文件中的touchesBegan
。