SlideShare a Scribd company logo
1 of 13
! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ?
!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?
Swift ビギナーズ倶楽部
第10回
「SpriteKitの有用性」
沼尻 尚騎
! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ?
!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?
自己紹介
〜沼尻 ∈ ( 東京出身 ∩ エンジニア ∩ ゲーム好き ∩ iOS開発歴3年以上 )
名前:沼尻 尚騎
出身:東京生まれ東京育ち
職業:システムエンジニア、、、なのかなぁ
趣味:ゲーム(ワンダと巨像、ICO、ガンパレ)
iOSアプリ開発歴:3年以上
Swift歴:6ヶ月
初めて触ったXcode:Xcode4
現在のXcode:Xcode6の最新版
! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ?
!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?
iOSアプリ開発に必要な知識の分類
と今日話す内容
「言語の知識」+「フレームワークの使い方」+「Xcodeの使い方」
フレームワークの使い方がメイン
難易度は、初級レベルを卒業した方
※ なお、アプリ申請には、上記知識以外に、
「デベロッパー登録関連ノウハウ」、「申請ノウハウ」 が必要
! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ?
!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?
Sprite Kitについて
プロジェクト新規作成時に、TemplateからGameを選択すると、
Game Technologyで選択できるアレ
! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ?
!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?
Sprite Kitの用途
・ゲームっぽい機能を実現したいとき
・簡単にかっこいいエフェクトを表現したいとき
! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ?
!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?
ゲーム系開発キットの個人的機能要件
Update処理 物理演算 当たり判定
! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ?
!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?
かの有名なUnity 5触った結果
Update処理
△
重処理は毎回
実行できない
物理演算
○
当たり判定
○
アプリサイズ ×
簡単に100MB超える
カジュアルゲームなので、Asset Bundleは使いたくない。。
ということで「Sprite Kit」へ
! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ?
!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?
Sprite Kit の基本イメージ
ViewControllerで画面を作るところまでは同じ
ViewControllerで管理しているSKViewに、
SKSceneで作成したSKViewを投影
SKViewのタッチイベントは、SKSceneへ渡される
SKView内で表示するものはSKNode、そのサブクラス
SKView
SKScene
SKView
ViewController
←←==→→
SKView
SKScene
SKNode SKNode SKNode
! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ?
!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?
Sprite Kit の評価 〜Update処理〜
Time Interval 付きでupdateイベントがコール
あとは自前で時間を管理してれば大体のことはできる
これは楽なので使える
! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ?
!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?
Sprite Kit の評価 〜物理演算〜
PhysicsBodyをセットすれば、自動的に重力配下に。
各要素に、
摩擦度・跳ね返り係数・回転速度・速度
などを設定でき、画面全体の重力も容易にコントロール可能
これはよい、使える
! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ?
!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?
Sprite Kit の評価 〜当たり判定〜
当たり判定は、PhysicsBodyを使用し、
BitMaskを適切に設定し、判定を行う
BitMaskとは2進数で
00000001(0x1 << 0)を自分、
00000010(0x1 << 1)を衝突物のように、
2進数の0と1の世界(Bit)で管理された世界
「 << 」は、「シフト演算」といい、ビットを左へずらす
つまり、「○ << n」は、○に2のn乗をかけることを指す
結構楽チンなので使える
! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ?
!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?
Sprite Kit のデモ
実際のソースコードを見ながら解説
! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ?
!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?
総評
特段、クロスプラットフォームとか意識しなければ、
Sprite Kitで普通に作れる
ただ、考え方が、UIKitとは違うので学習コストは少しあり
しかし、固定位置にある特定のボタンは、
UIKitで既存ノウハウで、ちゃちゃっと実装するとか、
併用とかできるのでよいよい
個人的には、sksファイルでリッチな表現が簡単にできるのも好み

More Related Content

Viewers also liked

Middle income trap and roles of agriculture in avoiding MIT
Middle income trap and roles of agriculture in avoiding MITMiddle income trap and roles of agriculture in avoiding MIT
Middle income trap and roles of agriculture in avoiding MITsomporn Isvilanonda
 
Physiclo slide deck
Physiclo slide deckPhysiclo slide deck
Physiclo slide deckFrank Yao
 
Ela mod1 unit1lesson3
Ela mod1 unit1lesson3Ela mod1 unit1lesson3
Ela mod1 unit1lesson3ricardmedina
 
ห้าทศวรรษการพัฒนาข้าวโพดเลี้ยงสัตว์ในประเทศไทย
ห้าทศวรรษการพัฒนาข้าวโพดเลี้ยงสัตว์ในประเทศไทยห้าทศวรรษการพัฒนาข้าวโพดเลี้ยงสัตว์ในประเทศไทย
ห้าทศวรรษการพัฒนาข้าวโพดเลี้ยงสัตว์ในประเทศไทยsomporn Isvilanonda
 
Museo reale e museo virtuale si incontrano sui social network
Museo reale e museo virtuale si incontrano sui social networkMuseo reale e museo virtuale si incontrano sui social network
Museo reale e museo virtuale si incontrano sui social network#svegliamuseo
 
Golden Rules for Successful Social Media Marketing
Golden Rules for Successful Social Media Marketing Golden Rules for Successful Social Media Marketing
Golden Rules for Successful Social Media Marketing Crowd Siren
 
10 Step Guide to Hiring a Designer
10 Step Guide to Hiring a Designer10 Step Guide to Hiring a Designer
10 Step Guide to Hiring a DesignerCTRServices
 
Modernize and Transform your IT with NetApp Storage and Catalogic Copy Data M...
Modernize and Transform your IT with NetApp Storage and Catalogic Copy Data M...Modernize and Transform your IT with NetApp Storage and Catalogic Copy Data M...
Modernize and Transform your IT with NetApp Storage and Catalogic Copy Data M...Catalogic Software
 
puk en de kerstman
puk en de kerstmanpuk en de kerstman
puk en de kerstmanPuk Visser
 
พลวัตเศรษฐกิจข้าวไทย
พลวัตเศรษฐกิจข้าวไทยพลวัตเศรษฐกิจข้าวไทย
พลวัตเศรษฐกิจข้าวไทยsomporn Isvilanonda
 

Viewers also liked (14)

Middle income trap and roles of agriculture in avoiding MIT
Middle income trap and roles of agriculture in avoiding MITMiddle income trap and roles of agriculture in avoiding MIT
Middle income trap and roles of agriculture in avoiding MIT
 
Physiclo slide deck
Physiclo slide deckPhysiclo slide deck
Physiclo slide deck
 
Cultural colors of punjab
Cultural colors of punjabCultural colors of punjab
Cultural colors of punjab
 
демо дей
демо дейдемо дей
демо дей
 
Sedsad no.44 (1)
Sedsad no.44 (1)Sedsad no.44 (1)
Sedsad no.44 (1)
 
System 2
System 2System 2
System 2
 
Ela mod1 unit1lesson3
Ela mod1 unit1lesson3Ela mod1 unit1lesson3
Ela mod1 unit1lesson3
 
ห้าทศวรรษการพัฒนาข้าวโพดเลี้ยงสัตว์ในประเทศไทย
ห้าทศวรรษการพัฒนาข้าวโพดเลี้ยงสัตว์ในประเทศไทยห้าทศวรรษการพัฒนาข้าวโพดเลี้ยงสัตว์ในประเทศไทย
ห้าทศวรรษการพัฒนาข้าวโพดเลี้ยงสัตว์ในประเทศไทย
 
Museo reale e museo virtuale si incontrano sui social network
Museo reale e museo virtuale si incontrano sui social networkMuseo reale e museo virtuale si incontrano sui social network
Museo reale e museo virtuale si incontrano sui social network
 
Golden Rules for Successful Social Media Marketing
Golden Rules for Successful Social Media Marketing Golden Rules for Successful Social Media Marketing
Golden Rules for Successful Social Media Marketing
 
10 Step Guide to Hiring a Designer
10 Step Guide to Hiring a Designer10 Step Guide to Hiring a Designer
10 Step Guide to Hiring a Designer
 
Modernize and Transform your IT with NetApp Storage and Catalogic Copy Data M...
Modernize and Transform your IT with NetApp Storage and Catalogic Copy Data M...Modernize and Transform your IT with NetApp Storage and Catalogic Copy Data M...
Modernize and Transform your IT with NetApp Storage and Catalogic Copy Data M...
 
puk en de kerstman
puk en de kerstmanpuk en de kerstman
puk en de kerstman
 
พลวัตเศรษฐกิจข้าวไทย
พลวัตเศรษฐกิจข้าวไทยพลวัตเศรษฐกิจข้าวไทย
พลวัตเศรษฐกิจข้าวไทย
 

Sprite kitの有用性

  • 1. ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? !?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!? Swift ビギナーズ倶楽部 第10回 「SpriteKitの有用性」 沼尻 尚騎
  • 2. ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? !?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!? 自己紹介 〜沼尻 ∈ ( 東京出身 ∩ エンジニア ∩ ゲーム好き ∩ iOS開発歴3年以上 ) 名前:沼尻 尚騎 出身:東京生まれ東京育ち 職業:システムエンジニア、、、なのかなぁ 趣味:ゲーム(ワンダと巨像、ICO、ガンパレ) iOSアプリ開発歴:3年以上 Swift歴:6ヶ月 初めて触ったXcode:Xcode4 現在のXcode:Xcode6の最新版
  • 3. ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? !?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!? iOSアプリ開発に必要な知識の分類 と今日話す内容 「言語の知識」+「フレームワークの使い方」+「Xcodeの使い方」 フレームワークの使い方がメイン 難易度は、初級レベルを卒業した方 ※ なお、アプリ申請には、上記知識以外に、 「デベロッパー登録関連ノウハウ」、「申請ノウハウ」 が必要
  • 4. ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? !?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!? Sprite Kitについて プロジェクト新規作成時に、TemplateからGameを選択すると、 Game Technologyで選択できるアレ
  • 5. ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? !?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!? Sprite Kitの用途 ・ゲームっぽい機能を実現したいとき ・簡単にかっこいいエフェクトを表現したいとき
  • 6. ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? !?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!? ゲーム系開発キットの個人的機能要件 Update処理 物理演算 当たり判定
  • 7. ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? !?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!? かの有名なUnity 5触った結果 Update処理 △ 重処理は毎回 実行できない 物理演算 ○ 当たり判定 ○ アプリサイズ × 簡単に100MB超える カジュアルゲームなので、Asset Bundleは使いたくない。。 ということで「Sprite Kit」へ
  • 8. ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? !?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!? Sprite Kit の基本イメージ ViewControllerで画面を作るところまでは同じ ViewControllerで管理しているSKViewに、 SKSceneで作成したSKViewを投影 SKViewのタッチイベントは、SKSceneへ渡される SKView内で表示するものはSKNode、そのサブクラス SKView SKScene SKView ViewController ←←==→→ SKView SKScene SKNode SKNode SKNode
  • 9. ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? !?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!? Sprite Kit の評価 〜Update処理〜 Time Interval 付きでupdateイベントがコール あとは自前で時間を管理してれば大体のことはできる これは楽なので使える
  • 10. ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? !?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!? Sprite Kit の評価 〜物理演算〜 PhysicsBodyをセットすれば、自動的に重力配下に。 各要素に、 摩擦度・跳ね返り係数・回転速度・速度 などを設定でき、画面全体の重力も容易にコントロール可能 これはよい、使える
  • 11. ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? !?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!? Sprite Kit の評価 〜当たり判定〜 当たり判定は、PhysicsBodyを使用し、 BitMaskを適切に設定し、判定を行う BitMaskとは2進数で 00000001(0x1 << 0)を自分、 00000010(0x1 << 1)を衝突物のように、 2進数の0と1の世界(Bit)で管理された世界 「 << 」は、「シフト演算」といい、ビットを左へずらす つまり、「○ << n」は、○に2のn乗をかけることを指す 結構楽チンなので使える
  • 12. ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? !?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!? Sprite Kit のデモ 実際のソースコードを見ながら解説
  • 13. ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? ! ? !?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!? 総評 特段、クロスプラットフォームとか意識しなければ、 Sprite Kitで普通に作れる ただ、考え方が、UIKitとは違うので学習コストは少しあり しかし、固定位置にある特定のボタンは、 UIKitで既存ノウハウで、ちゃちゃっと実装するとか、 併用とかできるのでよいよい 個人的には、sksファイルでリッチな表現が簡単にできるのも好み