2015-12-26 57 views
-1

我做了一個簡單的遊戲,其中有許多sprite節點正在從另一個球中射出。我的問題是節點正在收集在屏幕的末尾。所以......我希望節點在一段時間後消失,所以遊戲速度不會很慢。在一段時間後刪除節點xcode sprite kit

這是我認爲的問題的必要代碼。 想索姆幫忙,謝謝!

var timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "BallMovement", userInfo: nil, repeats: true) 

func BallMovement(){ 


    Ball2 = SKSpriteNode(imageNamed: "Ball") 
    Ball2.setScale(0.5) 
    Ball2.position = CGPointMake(Ball.position.x, Ball.position.y) 
    Ball2.name = "Ball2" 


    Ball2.physicsBody = SKPhysicsBody(rectangleOfSize: Ball2.size) 
    Ball2.physicsBody?.affectedByGravity = false 
    Ball2.physicsBody?.dynamic = true 
    Ball2.physicsBody?.friction = 0.4 
    Ball2.physicsBody?.restitution = 0.1 

    Ball2.zPosition = 1 
    addChild(Ball2) 

    let action = SKAction.moveToX(self.size.width, duration: 4) 
    Ball2.runAction(SKAction.repeatActionForever(action)) 


} 

回答

2

你可以嘗試財產以後這樣的:

Ball2.runAction(SKAction.sequence([SKAction.repeatAction(action, count: 1000),SKAction.removeFromParent()]; 

action將重複1000次和相關的節點會從父節點被移除。

+0

謝謝,它的工作原理!! :) –

+0

而不是做1000次,只是做waitForDuration和時間限制,你想等待 – Knight0fDragon