Swift:override func update(当前时间:NSTIMEIVAL)不执行

Swift:override func update(当前时间:NSTIMEIVAL)不执行,swift,time,Swift,Time,我正在创建一个游戏,在这个游戏中,随机释放敌人并将其抛向目标,我试图建立一个难度系统,因此分数越高,难度越大,例如: if score < 100{ enemy.runAction(SKAction.moveTo(mainBall.position, duration:3)) } else if score >= 100 && score < 200{ enemy.runAction

我正在创建一个游戏,在这个游戏中,随机释放敌人并将其抛向目标,我试图建立一个难度系统,因此分数越高,难度越大,例如:

if score < 100{
            enemy.runAction(SKAction.moveTo(mainBall.position, duration:3))
        }
        else if score >= 100 && score < 200{
            enemy.runAction(SKAction.moveTo(mainBall.position, duration:2.5))

        }
        else if score >= 200 && score < 300{
            enemy.runAction(SKAction.moveTo(mainBall.position, duration:2))
        }
        else{
            enemy.runAction(SKAction.moveTo(mainBall.position, duration:1.5))
        }
我希望此难度代码在以下范围内:

override func update(currentTime: NSTimeInterval)
因此,它在每帧之前执行代码。但是,当我将此代码放在这个函数中时,什么都不起作用

下面是一些需要考虑的其他代码:

func Enemies(){
        // Properties of the enemies
        let enemy = SKSpriteNode(imageNamed:"Ball")
        enemy.size = CGSize(width: 20, height: 20)
        enemy.color = UIColor(red: 0.9, green: 0.1, blue: 0.1, alpha: 1.0)
        enemy.colorBlendFactor = 1.0
        // Physics
        enemy.physicsBody = SKPhysicsBody(circleOfRadius: enemy.size.width/2)
        enemy.physicsBody?.categoryBitMask = PhysicsCatagory.enemy
        enemy.physicsBody?.contactTestBitMask = PhysicsCatagory.smallBall | PhysicsCatagory.mainBall
        enemy.physicsBody?.collisionBitMask = PhysicsCatagory.smallBall | PhysicsCatagory.mainBall
        enemy.physicsBody?.affectedByGravity = false
        enemy.physicsBody?.dynamic = true
        enemy.name = "enemy"

        let randomPosNmbr = arc4random() % 4

        switch randomPosNmbr{
        case 0:
            enemy.position.x = 0
            var positionY = arc4random_uniform(UInt32(frame.size.height))
            enemy.position.y = CGFloat(positionY)
            self.addChild(enemy)
        case 1:
            enemy.position.y = 0
            var positionX = arc4random_uniform(UInt32(frame.size.width))
            enemy.position.x = CGFloat(positionX)
            self.addChild(enemy)
        case 2:
            enemy.position.y = frame.size.height
            var positionX = arc4random_uniform(UInt32(frame.size.width))
            enemy.position.x = CGFloat(positionX)
            self.addChild(enemy)
        case 3:
            enemy.position.x = frame.size.width
            var positionY = arc4random_uniform(UInt32(frame.size.height))
            enemy.position.y = CGFloat(positionY)
            self.addChild(enemy)
        default:
            break
            }
        if score < 100{
            enemy.runAction(SKAction.moveTo(mainBall.position, duration:3))
        }
        else if score >= 100 && score < 200{
            enemy.runAction(SKAction.moveTo(mainBall.position, duration:2.5))
            if count < 1 {
                runAction(SKAction.colorizeWithColor(SKColor.purpleColor(), colorBlendFactor: 1.0, duration: 2.0))
                count++
            }
        }
        else if score >= 200 && score < 300{
            enemy.runAction(SKAction.moveTo(mainBall.position, duration:2))
        }
        else{
            enemy.runAction(SKAction.moveTo(mainBall.position, duration:1.5))
        }

“什么都不起作用”是什么意思?敌人不会飞到用户对象上问题是,每次调用update方法时都会启动runAction。你必须改变这一点。
func Enemies(){
        // Properties of the enemies
        let enemy = SKSpriteNode(imageNamed:"Ball")
        enemy.size = CGSize(width: 20, height: 20)
        enemy.color = UIColor(red: 0.9, green: 0.1, blue: 0.1, alpha: 1.0)
        enemy.colorBlendFactor = 1.0
        // Physics
        enemy.physicsBody = SKPhysicsBody(circleOfRadius: enemy.size.width/2)
        enemy.physicsBody?.categoryBitMask = PhysicsCatagory.enemy
        enemy.physicsBody?.contactTestBitMask = PhysicsCatagory.smallBall | PhysicsCatagory.mainBall
        enemy.physicsBody?.collisionBitMask = PhysicsCatagory.smallBall | PhysicsCatagory.mainBall
        enemy.physicsBody?.affectedByGravity = false
        enemy.physicsBody?.dynamic = true
        enemy.name = "enemy"

        let randomPosNmbr = arc4random() % 4

        switch randomPosNmbr{
        case 0:
            enemy.position.x = 0
            var positionY = arc4random_uniform(UInt32(frame.size.height))
            enemy.position.y = CGFloat(positionY)
            self.addChild(enemy)
        case 1:
            enemy.position.y = 0
            var positionX = arc4random_uniform(UInt32(frame.size.width))
            enemy.position.x = CGFloat(positionX)
            self.addChild(enemy)
        case 2:
            enemy.position.y = frame.size.height
            var positionX = arc4random_uniform(UInt32(frame.size.width))
            enemy.position.x = CGFloat(positionX)
            self.addChild(enemy)
        case 3:
            enemy.position.x = frame.size.width
            var positionY = arc4random_uniform(UInt32(frame.size.height))
            enemy.position.y = CGFloat(positionY)
            self.addChild(enemy)
        default:
            break
            }
        if score < 100{
            enemy.runAction(SKAction.moveTo(mainBall.position, duration:3))
        }
        else if score >= 100 && score < 200{
            enemy.runAction(SKAction.moveTo(mainBall.position, duration:2.5))
            if count < 1 {
                runAction(SKAction.colorizeWithColor(SKColor.purpleColor(), colorBlendFactor: 1.0, duration: 2.0))
                count++
            }
        }
        else if score >= 200 && score < 300{
            enemy.runAction(SKAction.moveTo(mainBall.position, duration:2))
        }
        else{
            enemy.runAction(SKAction.moveTo(mainBall.position, duration:1.5))
        }
enemyTimer = NSTimer.scheduledTimerWithTimeInterval(0.7, target: self, selector:Selector("Enemies"), userInfo: nil, repeats: true)