【发布时间】:2015-02-05 06:40:30
【问题描述】:
我正在使用 XCode 6 和 Sprite-Kit 在 Swift 中工作,我有许多不同的节点,但目前我只能检测到一根手指并同时移动一个节点。 我想知道如何设法检测多个手指以便同时移动多个节点。 我的实际代码是:
var location = CGFloat() // finger position
var actualNode = -1 // node touched by the finger, -1 means no node touched
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) // when a finger touch the screen
{
for touch: AnyObject in touches
{
location = touch.locationInNode(self) // we detect the finger position
}
for var index = 0; index < colorNode.count; index++
{
if nodeAtPoint(location) == colorNode[index].node
{
actualNode = index // the number of the node touched by the finger
}
}
}
override func touchesMoved(touches: NSSet, withEvent event: UIEvent) // when a finger move
{
for touch: AnyObject in touches
{
location = touch.locationInNode(self) // we detect the finger position
}
if actualNode != -1 // if a node is touched
{
colorNode[actualNode].position = location // we move this node to the finger
}
}
override func touchesEnded(touches: NSSet, withEvent event: UIEvent) // when a finger don't touch the screen anymore
{
actualNode = -1 // there is no node touched
}
如您所见,我只有第一根手指的position,但是如何检测多个手指位置并将每个手指分配给手指触摸的节点?
【问题讨论】:
标签: swift sprite-kit gesture multi-touch touches