【问题标题】:Turn off simultaneous touches in SKScene / Sprite Kit在 SKScene / Sprite Kit 中关闭同时触摸
【发布时间】:2015-02-27 18:36:54
【问题描述】:

我目前正在开发一款用户一次只能用一根手指触摸的游戏。我正在使用SKScene 并尝试寻找禁用多点触控功能的方法,但没有任何结果。我想在调用touchesBegan()touchesEnded() 之间的所有触摸时手动调用“return”,但该方法也有缺陷(SpriteKit SKScene missing touchesEnded)。

所以我的问题是:如何在 SKScene 中一次只允许一次触摸?

【问题讨论】:

    标签: ios sprite-kit multi-touch skscene


    【解决方案1】:

    SKView 继承自 UIView,所以,在 didMoveToView 中添加:

    self.view.multipleTouchEnabled = NO;
    

    【讨论】:

      【解决方案2】:

      具有讽刺意味的是,经过几天一无所获,我在发布此问题后立即想出了一个 hack。但请注意,这是一个 hack,而且不是最优的,所以我仍在寻找更好的建议。破解如下:

      在touchesBegan()里面,替换:

          for touch: AnyObject in touches {
              // Whatever is being done on touch
          }
      

      与:

          for touch: AnyObject in touches {
              if(CACurrentMediaTime()-lastTouchDate < 0.1) {
                  return;
              }
              lastTouchDate = CACurrentMediaTime();
              // Whatever is being done on touch
          }
      

      这样,只有第一次触摸会被注册,当多个触摸同时进入时,或者紧接着一个。 if(CACurrentMediaTime()-lastTouchDate

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 2014-09-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多