我有这组代码在一个设定的位置产生一个SKSpriteNode(使用rect),但是我试图让Node消失但是在一段时间后在另一个位置重新出现。我一直在寻找一个NSTimer,但不确定如何实现它,有没有一个很好的方法来做到这一点?
let rect = CGRectMake(8, 293, 165, 218)
let x = rect.origin.x + CGFloat(arc4random()) % rect.size.width
let y = rect.origin.y + CGFloat(arc4random()) % rect.size.height
let randomPoint = CGPointMake(x, y)
self.redcircle.position = randomPoint
self.addChild(redcircle)
答案 0 :(得分:0)
不使用NSTimer
,而是使用SpriteKit SKAction
。你需要的是行动waitForDuration
:
someNode.hidden = YES
waitAction = SKAction.waitForDuration(someDuration)
self.runAction(wait, completion: {() -> Void in
// Sprite Kit waits for a certain amount of time and runs this completion closure
// Inside here you can get the node to reappear again
someNode.hidden = NO
}))