2017-08-29 101 views
0

我想讓我的宇宙飛船擁有跟隨它的粒子軌跡。我將如何做到這一點?Spritekit添加粒子

這是我爲我的飛船代碼:

override func didMove(to view: SKView) { 
    spaceS.position = CGPoint(x: self.frame.width/2, y: self.frame.height/2) 
    spaceS.setScale(0.05) 
    spaceS.zPosition = 1 

    addChild(spaceS) 

} 
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 

     for touch in touches { 
      let location = touch.location(in: self) 
      spaceS.position = CGPoint(x: location.x, y: location.y) 
     } 


} 
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) { 
       for touch in touches { 
      let location = touch.location(in: self) 
      spaceS.position = CGPoint(x: location.x, y: location.y) 
     } 


} 

編輯1:火災粒子蹤跡更確切地說

回答

1

首先,你需要通過按下命令+ N創建SpriteKit Particle File鍵盤和從模板下的iOSResources→選擇SpriteKit Particle File點擊Next並選擇particle templatefire按nex t並命名爲SpriteKit Particle File這將創建一個yourFileName.sks文件到您的項目。

使用下面的代碼:

override func didMove(to view: SKView) { 

    spaceS = SKSpriteNode(imageNamed: "Spaceship") 
    spaceS.position = CGPoint(x: self.frame.width/2, y: self.frame.height/2) 
    spaceS.setScale(0.50) 
    spaceS.zPosition = 1 

    addChild(spaceS) 

    let emitter = SKEmitterNode(fileNamed: "MyParticle") //MyParticle is the name of the sks file. 
    emitter?.position = CGPoint(x: 0, y: -spaceS.size.height) 
    emitter?.zPosition = 1 
    spaceS.addChild(emitter!) //Now the emitter is the child of your Spaceship.  
} 

輸出:

enter image description here

+0

如果精靈太小火沒有出現,而且它也出現在了中間sprite –

+0

我會更好地解釋我的最後一條評論。如果粒子設置爲較小的比例,它會出現在精靈的中間(它不會消失) –

+0

也許你的精靈比較小。試着縮小你的粒子的大小。如果我的答案有助於解決問題,您應該接受答案或upvote。 – Joe