SpriteKit节点选择和触摸管理

时间:2014-02-22 10:58:17

标签: ios objective-c touch sprite-kit

我正在写一个小精灵套装游戏。其中屏幕上会有几个节点。当用户点击其中一个时,它将被选中。我通过在我使用的SKSpriteNode子类上实现touch did来做到这一点(它向tapped节点添加了另一个覆盖节点以指示它被选中)。

用户应该可以通过点击它来选择另一个节点。 如何通知已选择的节点用户选择了另一个节点?通知?我不认为我可以在场景中使用touches did begin方法,因为我也想要这个:

  • 如果用户选择了一个节点并在场景上点击外部,那么所选节点应该旋转以指向所点击的区域。
  • 但是,如果用户没有选定的节点,他可以滚动场景(它大于屏幕大小)。
  • 用户应通过点击场景(没有节点)取消选择任何选定的节点。

这是一个很多触摸处理...这样做的最简单的方法是什么? 提前谢谢..

1 个答案:

答案 0 :(得分:0)

我认为你应该使用 NSNotificationCenter 。这将为您提供最灵活的解决方案。

点击节点时,会发布通知:

[[NSNotificationCenter defaultCenter] postNotificationName:@"YourNodeTappedNotification" 
                                                    object:self];

如果他们之前注册了通知,则其他节点,场景等可以处理此事件。

[[NSNotificationCenter defaultCenter] addObserver:yourObject 
                                         selector:@selector(nodeTapped:)        
                                             name:@"YourNodeTappedNotification" 
                                           object:nil];

您还可以添加更多类型的通知。例如,取消选择节点等