Swiftで遊ぼう! - 883 - Pathfindingの理解をすすめます
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- 初心者はここから!-> 50オヤジでもできるiOS開発
- 私の本業、オフィシャルなブログ-> Life-LOG
- Swift 3 対応
GameplayKitのチュートリアルを探していて、ちょっと興味深い記事を見つけました。
GameplayKit with Swift for Beginners — Tower Defense Game — Part 1: Gridは、タワーディフェンスタイプのゲームを作成するチュートリアルです。確かに目的物に向かって動いてくる敵キャラの動きをパス・ファインディングの機能を利用するのが打って付けです。
しかし、このチュートリアルは少々古いんです。iOS9でGameplayKitが新たに導入されたことなので、Xcodeも古いため、記述の通りに作業できません。
ちょっと工夫がひつようなので、Xcode 8で動くかどうか確認しながらコーディングしてみたのですが、解決できない問題点にいくつかぶち当たります。
分からない問題点を回避しながらプロジェクトを進めてみます。
Xcode 8で新規プロジェクトを立ち上げます。既にテンプレート選択画面から変更が加わっています。
iOSタブからApplicationの「Game」を選択します。これを選択することで、スーパービューに「SKView」クラスを持つ、GameViewControllerでコントロールできるテンプレートが用意されます*1 。
Xcode 8から「Integrate GameplayKit」を選択してプロジェクトに自動的に組み込むことができるんですが、まだGameplayKitが良くわかっていないので、マニュアルで導入するため、このマークは外します。
プロジェクトをセーブしたら立ち上がります。プロジェクトの設定部分で、「Portrait」のマークを外して、画面縦向きを非対応にします。ゲームは横向きにだけするんです。プロジェクト・ナビゲータをみると、色々なファイルが並んでいます。まず不要なものを消して行く作業です。
- Assets.xcassetsから「Spaceship」を削除します。
- GameScene.sksから「helloLabel」を削除して、「Scene」のアトリビュート・インスペクタにある「Color」から「Grid Color」を選択します。
- GameViewControllerからviewDidLoad()メソッド以外のメソッドを全て削除して、「scene.scaleMode = .aspectFill」を「scene.scaleMode = .resizeFill」に変更します。
- 最後に「GameScene.swift」の「didMove()」「touchesBegan()」「update()」の内容も全て消して、他のメソッドとプロパティも削除します。
ここでランします。
nodeが1つありますが、これがsceneだと思います。
ここまで。
*1:こういう内容は初心者チュートリアルで説明しています -> Swiftで遊ぼう! - 721 - SpriteKit 初心者チュートリアル - Swiftで遊ぼう! on Hatena