私はSwiftにさまざまなシーンがあります。各シーンは、いくつかのオブジェクトを短時間アニメーション化します。これらのオブジェクトは異種で、すべて独自の方法でアニメートされます。Swiftでアニメーションを整理する
問題は、シーンごとに異なるSKActionを管理する行と行のコードが追加されたことです。この種のコードを細かくしたり、コードを再構成して1つの場所に配置したり、どこからでも引き出したりする方法はありますか?
私の考えの1つは、アニメーションノードのすべてをAnimatedNodeのような特定のクラスにして、そこにすべてのアニメーションを入れることです。別々の機能として。これにより、scene.swiftファイルからコードが効果的に削除されます。これは私ができる最善の策ですか、それとも私には見えない他のアプローチがありますか?
EDIT:私のアニメーションコードはあらゆるシーン全体で100の+の行を実行しますが、アニメーションはそのようなノード上で実行される方法の一例として、これはそれがどのように見えるかです:
// can
let can = bgNode.childNode(withName: "can")
let tip = SKAction.rotate(byAngle: CGFloat(GLKMathDegreesToRadians(10)), duration: 0.5)
let tipSound = SKAction.playSoundFileNamed("pot", waitForCompletion: false)
can?.run(SKAction.sequence([tip, tipSound, tip.reversed()]))
「ミニ化」するコードを表示してください。 –
コードを小さくしないでください。しかし、アニメーションルーチンを '拡張子'に入れることができます。コードを論理的に整理しておくだけでなく、コードの他の部分に集中しているときにその拡張を "崩壊"させることができます。または、別のクラスに入れることができます(特に再利用がある場合)。私は、いくつかのサンプルルーチンを見て、それらの関数で何を提案しているのかを見なければならないと思います。 – Rob
上記の情報を追加しました。 – illuminatedtype