2015-07-14 7 views
1

Я пытаюсь выполнить несколько действий на одном узле.Swift Spritekit count touches

так, например, при первом касании на этом узле должно выполняться первое действие. На втором касании: второе действие должно выполняться.

ниже нерабочего примера кода с touchhes.count.

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { 
    for touch: AnyObject in touches { 
     let location = touch.locationInNode(self) 
     let node = self.nodeAtPoint(location) 

     if node == myNode { 
      if touches.count == 1 { 
       action1() 
      } 
      if touches.count == 2 { 
       action2() 
      } 
      if touches.count == 3 { 
       action3() 
      } 
     } 
    } 
} 

ответ

0

Вам нужна переменная-член, которая отслеживает количество касаний с момента запуска вашего приложения. Метод touchs.count не является кумулятивным.

var cumulativeNumberOfTouches = 0 

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { 

    for touch: AnyObject in touches { 
     let location = touch.locationInNode(self) 
     let node = self.nodeAtPoint(location) 

     if node == myNode { 

      cumulativeNumberOfTouches += 1 

      switch cumulativeNumberOfTouches { 
      case 1: 
       action1() 
      case 2: 
       action2() 
      case 3: 
       action3() 
      default: 
       /* do something or nothing or whatever */ 
       println("\(cumulativeNumberOfTouches) touches") 
      } 
     } 
    } 

} 
+0

спасибо, что решил! Я думал слишком далеко ;-) – codeup

0

Я думаю, вместо подсчета вы хотите использовать touchhes.tapCount. Это обнаруживает краны, которые вы делаете, и должны регистрировать 1, 2 и 3 (краны быстро, поэтому вам нужно быстро нажимать).

EDIT: Вы имеете в виду, сколько раз кто-то забирает экран или вы имеете в виду, сколько пальцев на экране сразу?

+0

tapCount не является решением. Это подсчитывает количество отсчетов во время одной «сенсорной фазы». . Я ищу что-то, что подсчитывает общее количество касаний, так как приложение было начато. – codeup