如何确定单击了哪个SKSpriteNode?

02f*_*tym 1 objective-c sprite-kit osx-mavericks skspritenode

我正在尝试使用SKSpriteNode作为从一个场景到下一个场景的过渡.我怎样才能做到这一点?

[编辑]请注意,这适用于OSX而非iOS.iOS的touchesBegan方法似乎在OSX中不起作用.

02f*_*tym 5

好的,这是OSX的解决方案.

您必须首先初始化场景(自身对象),以便它监视点击次数.

self.userInteractionEnabled = YES; //do this somewhere in initialization
Run Code Online (Sandbox Code Playgroud)

在mouseDown事件处理程序中,检查是否触摸了一个节点(在本例中是一个特定的SKSpriteNode).

-(void)mouseDown:(NSEvent *)theEvent {
    CGPoint location = [theEvent locationInNode:self]; //get location of touch
    SKSpriteNode *spriteTouched = (SKSpriteNode*)[self nodeAtPoint:location]; //get a node if touched at that location
    //DO SOMETHING WITH THE NODE
    ...
}
Run Code Online (Sandbox Code Playgroud)