2014-12-13 17 views
11

sto lavorando con Swift, Kit Sprite e Xcode 6,del nodo con SpriteKit

Vorrei creare un effetto particella in SpriteKit un po 'come gli effetti particelle delle palle nel gioco iOS chiamato "Duetto", ma non so come procedere, sono riuscito a creare un effetto particellare, ma non una particella come in questo gioco che segue un nodo e traccia il percorso del nodo ...

Ecco il mio codice:

let firstCircle = SKSpriteNode(imageNamed: "Circle") 
let particle = SKEmitterNode(fileNamed: "FirstParticle.sks") 

override func didMoveToView(view: SKView) 
{ 
    firstCircle.physicsBody = SKPhysicsBody(circleOfRadius: 7) 
    firstCircle.physicsBody?.affectedByGravity = false 

    particle.targetNode = firstCircle 

    addChild(firstCircle) 
    addChild(particle) 
} 

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) 
{   
    for touch: AnyObject in touches 
    { 
     firstCircle.position = touch.locationInNode(self) 
    } 
} 

override func touchesMoved(touches: NSSet, withEvent event: UIEvent) 
{ 
    for touch: AnyObject in touches 
    { 
     firstCircle.position = touch.locationInNode(self) 
    } 
} 
+1

Impostare 'proprietà targetNode' del nodo emettitore al nodo si vuole seguire – Okapi

+0

ho già fatto, la particella sta seguendo il mio nodo, ma non v'è alcun effetto "percorso", come una traccia – Drakalex

+0

Puoi pubblicare il tuo codice? – Okapi

risposta

9

Per ottenere un effetto simile a Duet è necessario particle essere un figlio del nodo trascinato e targetNode impostato sulla scena padre. targetNode controlla su quale nodo le particelle sono rappresentate come figlio di.

Quando particle è un figlio del nodo trascinato, emetterà particelle con il nodo trascinato come origine. La modifica di targetNode nella scena madre lascia particelle già emesse dietro mentre il nodo trascinato si sposta.

Questo codice dovrebbe funzionare ma potrebbe essere necessario regolare il sintonizzatore FirstParticle.sks.

let firstCircle = SKSpriteNode(imageNamed: "Circle") 
let particle = SKEmitterNode(fileNamed: "FirstParticle.sks") 

override func didMoveToView(view: SKView) 
{ 
    firstCircle.physicsBody = SKPhysicsBody(circleOfRadius: 7) 
    firstCircle.physicsBody?.affectedByGravity = false 

    particle.targetNode = self 

    addChild(firstCircle) 
    firstCircle.addChild(particle) 
} 

Sono stato in grado di ottenere un effetto simile e ho finito per creare un parco giochi per dimostrarlo. Dai un'occhiata allo here.

Demo of Duet trail effect

+1

Grazie per la risposta. Sapete quale configurazione dell'editor di particelle darebbe alle particelle (FirstParticle.sks) un aspetto simile al percorso in duetto? Grazie ancora. –

+0

Vedere la modifica. Ho caricato un intero Swift Playground dimostrando l'effetto. Puoi iniziare con i file di particelle sks lì e modificarli secondo necessità. –

+0

Wow, grazie mille! –

Problemi correlati