2015-02-08 4 views
0

Я пытаюсь получить объект для выполнения действия непрерывно до тех пор, пока он не коснется, но при касании объект просто выполняет одно действие.
это то, что я должен до сих порперемещайте объект (spritenode) быстро, до тех пор, пока не коснется экрана.

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { 

    for touches: AnyObject in touches { 

     plane.physicsBody?.velocity = CGVectorMake(0, 0) 
     plane.physicsBody?.applyImpulse(CGVectorMake(0, 500)) 
    } 
} 

любой sugessiton, как получить его работу.

ответ

0

Если вы хотите переместить объект, лучше использовать SKAction.moveBy вместо импульса. В настоящий момент вы выполняете это действие только в том случае, если пользователь коснулся экрана. Если вы хотите, чтобы запустить действие пока пользователь не прикасается к экрану, вы должны положить его в методе didMoveToView и использовать ключ, так что вы можете удалить действие из спрайта:

class YourClass: SKScene{ 
    var sprite = SKSpriteNode() 

    override func didMoveToView(view: SKView) { 

     //4 seconds for 500y 
     var neededTime:NSTimeInterval = 4 
     var action = SKAction.moveBy(CGVectorMake(0, 500), duration: neededTime) 
     var repeatAction = SKAction.repeatActionForever(action) 



     //Repeat the action forever and with a key so you can remove it on touch: 
     sprite.runAction(repeatAction, withKey: "aKey") 
    } 

    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { 
     //remove the action 
     sprite.removeActionForKey("aKey") 
    } 
}