• 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]というキャプチャ・リストも先日勉強した [http://yataiblue.hatenablog.com/entry/2016/12/09/000000:title]">*1ので分かりますね。

これがMovementComponentの全てです。次は敵キャラ(Entity)にこのComponentを実装させていくステップです。

2016年が終わります。

ここまで付き合ってくださった読者の皆さん、ありがとうございました!

来年こそアプリをAppStoreに発表していく時期なのでご期待下さい!

*1:まどまとめてませんが、戦闘の記事 -> Swiftで遊ぼう! - 869 - ARCとメモリーマネージメント - Swiftで遊ぼう! on Hatena