SpriteKitでの共有アクション(Sharing Actions)


大熊猫猪·侯佩原创或翻译作品.请大家转载,请注明出典.もし书くのがよくないと感じたらご意见を多く出してください、もし悪くないと感じたらどうぞよろしくお愿いします.ありがとうございます!hopy ;)
SpriteKitでは、いくつかのアクションに追加の遅延が必要です.毎回再作成すると、SKAction.playSoundFileNamedアクションなどの不要なパフォーマンスが浪費されます.このアクションは、音声ファイルをロードして再生します.たとえば、シーン内のボールが衝突するたびに(同じ)音を再生したい場合は、次のように書くことができます.
if     {
    let action = SKAction.playSoundFileNamed("hitCatLady.wav", waitForCompletion: false)
    runAction(action)
}
しかし、スクリーンには毎時毎刻数千回の衝突があり、毎回ロード再生の動作を作成するのは誇張されている.このときSpriteKitで動作を共有する概念は、この問題を解決するのに役立ちます.動作自体には状態が含まれていないので、任意のオブジェクトに何度も適用することができます.
アクションを作成するだけです.
class MyClass{
    let enemyCollisionSound:SKAction = SKAction.playSoundFileNamed("hitCatLady.wav", waitForCompletion: false)
}
このアクションは、毎回使用されます.
func zombieHitEnemy(enemy:SKSpriteNode){
        enemy.removeFromParent()
        runAction(enemyCollisionSound)
    }
That’s All!!!