我知道对于传统的UIView,我可以将“启用用户交互”标志设置为NO,并且 View 将不再响应触摸,让它们下面的 View 接收触摸。

有什么方法可以在Sprite Kit中实现相同的“轻按”功能吗?到目前为止,我只看到有人使用“触摸开始”,了解了要点,并向场景中的那个点询问了节点。

这种方法的问题是-如果我想在子画面(例如怪物的生命点等)上添加叠加层,它们也会对触摸做出响应。到目前为止,我试图通过为不同的节点创建自定义类,然后使用很大的if语句,检查每个节点的类来避免此问题。

是否有更好的方法来实现Sprite Kit的“轻按”功能?

最佳答案

如果您在子类SKSpriteNode上将userInteractionEnabled属性设置为YES,则将在该类内调用touch委托(delegate)。因此,您可以在其类中处理 Sprite 的触摸。

但是,默认情况下,userInteractionEnabled属性设置为NO。因此,默认情况下,对 Sprite 的触摸是“轻击”。

因此,对于所需的叠加层,为 Sprite 创建自定义类,在该类中实现touchesBegan:和其他委托(delegate),并在初始化时将userInteractionEnabled属性设置为YES

10-07 19:14
查看更多