Swiftで遊ぼう! - 891 - 描画ステップ
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- 初心者はここから!-> 50オヤジでもできるiOS開発
- 私の本業、オフィシャルなブログ-> Life-LOG
- Swift 3 対応
大晦日ですが、たんたんとプログラミングを続けます。というのも記事は数日分溜めているからです。本当の大晦日はブログも見ていないでしょう。
さあ、移動のためのメソッドを加えます。
func followPath(path: [GKGridGraphNode]) { var sequence = [SKAction]() for node in path { let action = SKAction.move(to: scene.pointFor(coordinate: node.gridPosition), duration: 1) let update = SKAction.run() { [unowned self] in self.coordinate = node.gridPosition } sequence += [action, update] } sprite.run(SKAction.sequence(sequence)) }
このコードもちゃんと追って理解できるようになりました。本当にここまで来るのに時間がかかりました。パスデータを持っている[GKFridGraphNode]データの1つずつの項目をSKActionのmoveに変更してsequenceデータにまとめて、一気にrunさせるステップです。
[unowned self]というキャプチャ・リストも先日勉強した*1ので分かりますね。
これがMovementComponentの全てです。次は敵キャラ(Entity)にこのComponentを実装させていくステップです。
2016年が終わります。
ここまで付き合ってくださった読者の皆さん、ありがとうございました!
来年こそアプリをAppStoreに発表していく時期なのでご期待下さい!
*1:まどまとめてませんが、戦闘の記事 -> Swiftで遊ぼう! - 869 - ARCとメモリーマネージメント - Swiftで遊ぼう! on Hatena