Анимация не работает в Swift 2.2

Я новичок в языке Swift, и я следую учебнику, в котором используется устаревший быстрый язык. Учебное пособие посвящено созданию анимации с файлами png. Таким образом, есть 6 файлов png, которые в совокупности создают анимацию. Это ссылка учебника " https://www.youtube.com/watch?v=5aCVyrJbrHQ ". Я заметил ключевое различие в старой версии Swift и новой. Вот где я застрял.

 override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    let shooterNode = self.childNodeWithName("shooterNode")

    if(shooterNode != nil) {
        let animation = SKAction.animateWithTextures(shooterAnimation, timePerFrame: 0.1)
        shooterNode?.runAction(animation)
    }

Новая версия: переопределить func touchhesBegan (касается: Set, withEvent event: UIEvent?

Старая версия: переопределить func touchhesBegan (касается: NSSet, withEvent event: UIEvent

ошибка

Как только я запускаю симулятор и нажимаю на объект, я не получаю ответа, никакой ошибки просто ничего. Я проверил, сделал ли я опечатку с именем объекта, но ничего не нашел.

Это полный код всего файла, если вы его попросите

import UIKit
import SpriteKit

class ShooterScene: SKScene {

    var score = 0
    var enemyCount = 10
    var shooterAnimation = [SKTexture]()

    override func didMoveToView(view: SKView) {
        self.initShooterScene()
    }

    func initShooterScene(){
        let shooterAtlas = SKTextureAtlas(named: "shooter")

        for index in 1...shooterAtlas.textureNames.count {
            let imgName = String(format: "shooter%01d", index)
            shooterAnimation += [shooterAtlas.textureNamed(imgName)]

        }
    }
        //Anime the shooter
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        let shooterNode = self.childNodeWithName("shooterNode")

        if(shooterNode != nil) {
            let animation = SKAction.animateWithTextures(shooterAnimation, timePerFrame: 0.1)
            shooterNode?.runAction(animation)
        }
    }
}

GameSwift.scene

import SpriteKit

class GameScene: SKScene {
    override func didMoveToView(view: SKView) {


    }

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        let introLabel = childNodeWithName("introLabel")

        if(introLabel != nil) {
            let fadeOut = SKAction.fadeOutWithDuration(1.5)

            introLabel?.runAction(fadeOut, completion: {
                let doors = SKTransition.doorwayWithDuration(1.5)
                let shooterScene = SKScene(fileNamed: "ShooterScene")
                self.view?.presentScene(shooterScene!, transition: doors)

            })

        }
    }

     /* Called before each frame is rendered */
    override func update(currentTime: CFTimeInterval) {
          }
}
+1
источник поделиться

Посмотрите другие вопросы по меткам или Задайте вопрос