关闭SKScene / Sprite Kit中的同步触摸

时间:2015-02-27 18:36:55

标签: ios sprite-kit multi-touch skscene

我目前正在开发一款游戏,用户一次只能用一根手指触摸。我正在使用SKScene,并尝试搜索禁用多点触控功能的方法,但没有出现任何问题。我只想手动调用"返回"调用touchesBegan()touchesEnded()之间的所有触摸,但该方法也存在缺陷(SpriteKit SKScene missing touchesEnded)。

所以我的问题是:我怎样才能在SKScene中一次只允许一次触摸?

2 个答案:

答案 0 :(得分:6)

SKView继承自UIView,因此,在didMoveToView中添加:

self.view.multipleTouchEnabled = NO;

答案 1 :(得分:0)

具有讽刺意味的是,经过几天的发现后,我在发布这个问题之后就想出了一个黑客。但请注意,它是一个黑客,并不是最佳的,所以我仍然在寻找更好的建议。黑客攻击如下:

在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&lt; 0.1)检查自上次触摸被接受后是否小于0.1秒。