Gesto multitáctil en Sprite Kit

Estoy trabajando en Swift con Sprite-Kit usando XCode 6, y tengo muchos nodos diferentes, pero por el momento solo logro detectar un dedo y mover un nodo al mismo tiempo. Quiero saber cómo podría detectar múltiples dedos para mover múltiples nodos al mismo tiempo. Mi código actual es:

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
}

Como puedes ver solo tengo elposition de mi primer dedo, pero ¿cómo puedo detectar la posición de varios dedos y asignar cada dedo al nodo tocado por el dedo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta