2014-12-13 25 views
11

Tôi đang làm việc với Swift, Sprite Kit và Xcode 6,Node với SpriteKit

Tôi muốn tạo ra một hiệu ứng hạt trong SpriteKit một chút giống như hiệu ứng hạt của quả bóng trong game iOS đặt tên là "Duet", nhưng tôi không biết cách tiến hành, tôi đã xoay xở để tạo ra một hiệu ứng hạt, nhưng không phải là một hạt giống như trong trò chơi này sau một nút và vẽ đường dẫn của nút ...

Đây là của tôi mã:

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

Set 'tài sản targetNode' nút phát để nút bạn muốn nó làm theo – Okapi

+0

Tôi đã làm điều đó, các hạt được sau nút của tôi, nhưng không có bất kỳ "con đường" có hiệu lực, giống như một đường mòn – Drakalex

+0

Bạn có thể đăng mã của mình không? – Okapi

Trả lời

9

Để đạt được Duet như hiệu ứng bạn cần particle là con của nút đường nhỏ và targetNode được đặt thành cảnh gốc. targetNode kiểm soát nút nào mà các hạt được hiển thị dưới dạng con của.

Khi particle là con của nút đường nhỏ, nó sẽ phát ra các hạt có nút nhánh dưới dạng gốc. Thay đổi targetNode thành cảnh bố mẹ để lại các hạt đã phát ra sau khi nút di chuyển.

Mã này sẽ hoạt động nhưng bạn có thể cần tinh chỉnh 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) 
} 

Tôi có thể nhận được hiệu ứng tương tự và kết thúc việc tạo Playground để minh họa nó. Kiểm tra xem nó ra here.

Demo of Duet trail effect

+1

Cảm ơn câu trả lời. Bạn có biết cấu hình của trình soạn thảo hạt sẽ cung cấp cho các hạt (FirstParticle.sks) trông giống như dấu vết trong bản song ca không? Cảm ơn một lần nữa. –

+0

Xem chỉnh sửa. Tôi đã tải lên toàn bộ Swift Playground demo hiệu ứng. Bạn có thể bắt đầu với các tập tin sks hạt trong đó và sửa đổi chúng khi cần thiết. –

+0

Wow, cảm ơn rất nhiều! –

Các vấn đề liên quan