SpriteKit确定对父母或孩子的触摸

时间:2017-01-09 20:31:52

标签: sprite-kit skspritenode

是否有一种首选的方法可以确定触摸是在父母身上还是在父母身上,如果是spritekit中的孩子但是仍然传播给父母?

假设我有一个名为" Square"的SKSpriteNode子类。用一个名字' " square"的财产。反过来,这个Square还有一个名为" foo"的孩子SKLabelNode。在这种情况下,显示一些简单的数字。

现在,当我点击Square或它的标签时,我想更新广场的颜色。

我知道如何更改颜色等并处理水龙头。但我不确定是否有更好的方法,如下所示:

 //point here is the touch point
  let node = nodes(at: point).first

    if node?.name == "square"  {
          //change color
    }else if node?.parent != nil && node?.parent?.name == "square" {
          //change colour of parent
    }

或者做一些像

这样的事情会更好
    //point here is the touch point
  let allnodes = nodes(at: point)

   for node in all nodes {
      if node?.name == "square"  {
          //change color
      }
    }

第二种方式似乎稍好一点,因为如果由于某种原因我添加了另一个孩子,我就不必添加另一个if语句。

为了它的价值,我在整个视图上都有一个UITapGestureRecognizer来确定要点,而不是使用override touchesBegan方法等。这是因为我使用这些方法来滚动相机。不确定改变逻辑是否会让事情变得更好

0 个答案:

没有答案