NS定时器产生双节点?

时间:2015-10-11 18:02:51

标签: swift sprite-kit

我有这段代码

_ = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("spawnPipes"), userInfo: nil, repeats: true)
func spawnPipes() {


func spawnPipes() {

let square = SKShapeNode(rectOfSize: CGSize(width: 50, height: 50))
    square.fillColor = SKColor.whiteColor()
    square.strokeColor = SKColor.whiteColor()
    square.physicsBody = SKPhysicsBody(rectangleOfSize: CGSize(width: 50, height: 50))
    square.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))
self.addChild(square)

此代码运行良好,并按计时器每秒产生1“平方”,因此每秒产生1个节点。在屏幕上我只能看到每秒产生1个方格。然而,当我在我的实际iPhone 5S上播放项目时,节点计数每秒显示它产生2个节点。但是我看不到2个正方形,也无法弄清楚为什么会发生这种情况?!

当我添加更多节点时,它会使我的游戏滞后。

谢谢

1 个答案:

答案 0 :(得分:1)

保持对NSTimer的引用作为属性(您将需要这个以使计时器无效以停止它并释放自己以便不泄漏),并且不要再次创建NSTimer如果已经设置了该属性。