我目前正在开发一款游戏,用户一次只能用一根手指触摸。我正在使用SKScene
,并尝试搜索禁用多点触控功能的方法,但没有出现任何问题。我只想手动调用"返回"调用touchesBegan()
和touchesEnded()
之间的所有触摸,但该方法也存在缺陷(SpriteKit SKScene missing touchesEnded)。
所以我的问题是:我怎样才能在SKScene中一次只允许一次触摸?
答案 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秒。