我都集中在我的球員離開顆粒的蹤跡的SKEmitterNode。我的球員有一個物理機構,它受物理學的影響,而不是手動更新它的位置。物理學之前SKEmitterNode發光粒子模擬
我遇到的問題是,當我的球員的速度提高了顆粒從播放器背後的一個點發出。 我發現發生這種情況的原因是粒子是在幀週期的「評估動作」部分發射的。我的玩家後來被「模擬物理」部分所感動。
我發現作爲一種解決方法是移動SKEmitterNode(在更新回調)的地步,我的球員將是物理計算後的解決方案。這是我使用的代碼:
particleEmitter.position = CGPointMake(
player.position.x + player.physicsBody!.velocity.dx * dt,
player.position.y + player.physicsBody!.velocity.dy * dt
)
UPDATE
起初,我有我的發射器作爲玩家的一個子節點,則是當我觀察到的問題。
我也試圖精確地給玩家位置同步的發射器的位置,不考慮自上次更新(速度* DT)移動距離,同樣的問題。
我的問題是,這將是解決這個的正確方法是什麼?
更新2
我創建了一個演示問題的操場。這裏我有發射器作爲播放器的孩子。你增加玩家的速度越多,玩家和發射粒子之間的差距就越大。
https://github.com/ovidiupruteanu/SKEmitterNodeTest-Playground
下面是來自蘋果文檔
你的問題是什麼?你在尋找替代方案嗎? – rickster 2014-11-05 21:26:18
經過一些更多的測試並看到@ 0x141E的答案,我發現我的解決方法存在一些問題。例如,當玩家通過與另一個物體碰撞而完全停止(在高速行進之後)時,在玩家停止的點之外產生一些粒子。 – Ovidiu 2014-11-06 04:34:57