SceneKit サンプル Fox 2を SwiftUI で実行

iOS

前回 fox を実行しましたが、今回はその続編である fox2 を実行します。

前回: SceneKit サンプル Fox を SwiftUI で実行
https://nomad.office-aship.info/scenekit-fox

Fox 2: SceneKit WWDC 2017 sample code – Version 1.3, 2018-04-05
https://developer.apple.com/library/archive/samplecode/scenekit-2017/Introduction/Intro.html#//apple_ref/doc/uid/TP40017656

appleのサンプルコードはこちらにあります。

Fox 2: SceneKit WWDC 2017 sample code – Version 1.3, 2018-04-05
https://developer.apple.com/library/archive/samplecode/scenekit-2017/Introduction/Intro.html#//apple_ref/doc/uid/TP40017656

前回と同じく、SwiftUI ベースに書き換えてみました。

修正ポイント

・Swift 4 から Swift 5.3 に更新
・悪しき Storyboard の廃止
・悪しき UIViewController を廃止して SwiftUI を使う
・UIViewRepresentable を使わず、iOS14からの SpriteView, SceneView を使う
・Warning 件数を限りなく0に近づける
・バーチャルパッドは実機でしか表示されないが、iPhoneシュミレーターでも表示されるよう無理やり修正

SpriteView – A SwiftUI view that renders a SpriteKit scene.
https://developer.apple.com/documentation/spritekit/spriteview

SceneView – A SwiftUI view for displaying 3D SceneKit content.
https://developer.apple.com/documentation/scenekit/sceneview
修正後のコードは以下のレポジトリの github/scenekit_fox2 ブランチにあります。

GitHub - aship/test_swift
Contribute to aship/test_swift development by creating an account on GitHub.
実行方法

コードを上記 github からクローンして、該当ブランチにチェックアウトします。

TestSwift.xcodeproj ファイルをダブルクリックして Xcode で実行します。

GamePad にも対応しているので、実機の iPhone で実行した場合、PS4 の DUALSHOCK4 とか bluetoothに対応してるコントローラーを接続しても、操作できます。

投げ銭

Amazonギフト券(Eメールタイプ)
Eメールの宛先:
ashipp2000@gmail.com
https://www.amazon.co.jp/dp/B004N3APGO

新生銀行 銀座支店
普通 0309642
アシナ ヤスオ

参考文献

こちらの方が、とてもよく解析されています。

WWDC 2017 の SceneKit サンプル Fox 2 を調べる

まとめ https://appleengine.hatenablog.com/entry/2018/06/04/152925
その1 概要 entry/2018/04/17/130713
その2 リソースファイル entry/2018/04/17/142237
その3 character entry/2018/04/17/160842
その4 enemy entry/2018/04/17/170417
その5 particles entry/2018/04/17/175140
その6 リソースファイル entry/2018/04/17/183246
その7 level_scene.scn entry/2018/04/18/201832
その8 概要のおさらい entry/2018/04/23/180434
その9 フォルダ構成 entry/2018/04/24/171727
その10 GameplayKit entry/2018/04/27/192633
その11 SimdExtensions entry/2018/05/15/184557
その12 Character.swift entry/2018/05/25/160629
その13 Character クラス entry/2018/05/25/161805
その14 Character その他 entry/2018/05/25/162817
その15 Character update entry/2018/05/25/163330
その16 Character プロパティ entry/2018/05/25/163835
その17 Entities and Components entry/2018/05/28/181615
その18a Agents, Goals, and Behaviors entry/2018/05/29/193402
その18b BaseComponent entry/2018/05/30/185016
その19 PlayerComponent entry/2018/05/30/185140
その20 ChaserComponent entry/2018/05/30/185322
その21 ScaredComponent entry/2018/05/30/191555
その22 GameController 概要 entry/2018/05/31/163411
その23 GameController 中身 entry/2018/05/31/163853
その24 GameController セットアップ entry/2018/05/31/164210
その25 GameController カメラ entry/2018/05/31/165103
その26 GameController 敵キャラ entry/2018/05/31/181347
その27 GameController クラス entry/2018/05/31/183144
その28 GameController init entry/2018/06/01/121033
その29 GameController 残り entry/2018/06/01/141145
その30 GameController 残り2 entry/2018/06/01/154035
その31 GameController 残り3 entry/2018/06/01/163940
その32 GameController 残り4 entry/2018/06/01/165830
その33 GameController フレーム更新 entry/2018/06/01/171748
その34 GameController クリア時 entry/2018/06/02/232701
その35 GameController 操作 entry/2018/06/03/032443
その36 Overlay entry/2018/06/04/030644
その37 Virtual Pad entry/2018/06/04/151048

それではよい SwiftUI ライフを!

SwiftUIを学ぶのにおすすめの本

SwiftUI 徹底入門

SwiftUIではじめるiPhoneアプリプログラミング入門

iOS/macOS UIフレームワーク SwiftUIプログラミング

コメント

タイトルとURLをコピーしました