【SpriteKitで始める #0】開発前の3つの基礎知識

2015.11.03
SwiftでSpriteKitを使う記事第0回のアイキャッチ画像

こんにちは、ただいまSpriteKitを猛勉強中の@Yuuです。

Swiftでビジネスアプリは作ったことがあったのですが、ゲームもこんなに作れる言語だったんだ・・と驚く日々でございます。

せっかくSpriteKitを覚えつつあるので、今回から数回SpriteKitの事を忘れないように備考録がてら書いていけたらいいなぁと思っています。

一応第1回の前に、第0回として「"SpriteKit"て何なんだぜ?」というお話と、SpriteKitを書く上で知っておいて欲しいことを書きます。
「第0回」というタイトルの理由は、「SwiftでSpriteKit」ていうタイトルなのにSwiftのコードを書かないからですw

スポンサーリンク

SpriteKitとは

SpriteKitは、iOS7以降に対応した2Dゲームを作るためのフレームワークです。
2Dゲームを作れる事で有名な「Cocos2d」と書き方はわりと似ているそうです。
僕はCocos2dを書いた事がないので分からないのですが。

SpriteKitの特徴は、「シンプル・分かりやすい・書きやすい」あたりじゃないかなと思います。今挙げた3つの項目に関しては、これ以降に書く予定の記事を見てコーディングしてもらえれば分かると思います。

欠点は、使用する言語がObjective-C、もしくはSwiftで書くので、iOSのみの対応ということです。Android版も作りたければ、iOS・Android両方同時に作れるUnityCocos2dを使った方がいいです。

まぁ簡単な話「SpriteKitを使えば、Swiftでも簡単にゲームが作れるよ!」という事。

つまり頑張れば「スー◯ーマ◯オ」を作るのだって夢じゃないよ!ということです。
でも「スー◯ーマ◯オ」作ったら訴えられちゃうのでやめましょうね、はい。

コードを書く前に知っておいて欲しい3つのこと

これから書くことは、SpriteKitを使う上で覚えておくと良いこと、ゲーム制作をする上で覚えておくと良いことを3つ挙げます。

1. ゲームの遷移にはSceneを使う

ビジネスアプリの場合だと、新しい画面を作る度に「~ViewController」を作っていました。

例えば、商品の一覧を表示する「ListViewController」という画面で商品を選択すると、商品の詳細が表示される「ItemViewController」画面が表示される、という風にして作ります。
一般的なアプリではViewController間で画面の遷移を行う

そして、これらの「~ViewController」にLabelやButtonを配置してアプリを作るわけです。

しかし、ゲームを作るSpriteKitを使う場合、「~ViewController」の上に「~Scene」というものを配置します。この「~Scene」が1つのゲーム画面になります。

例えば、スタート画面を「StartScene」、ゲーム画面を「GameScene」、そしてSceneを表示する「~ViewController」を「MainViewController」という名前だったとします。
その場合、MainViewControllerにまず「StartScene」を配置し、Startボタンを押すと「GameScene」を表示するような仕組みなっています。

ゲームではSceneを用いて画面遷移を行う

つまり、ViewControllerで画面を切り替えるのではなく、Sceneを使って画面を切り替えるんだ、ということを覚えておいてもらえればOKです。

このようにSceneを使う特徴としては、「以前生成した画面に戻る事はない」という事がViewControllerとの大きな違いかなと思います。

ViewControllerの場合、戻るボタンを押した時、メモリー上に残っている以前表示していたViewControllerを表示します。
しかし、Sceneでは戻るボタンを押す度に新しくSceneを生成します。

つまり、「StartSceneからGameSceneに行ったけど、ちょっとStartSceneで設定項目変えたいや」と思って戻るボタンを押した時は、以前表示していたStartSceneを呼び出すのではなく、新しくStartSceneを生成して画面に表示する、ということになります。

うん・・ちょっと、紛らわしいですね。

2. Sceneの上にNodeを配置する

ビジネスアプリではUILabelやUIButtonを配置してましたが、SpriteKitではそれらに相当するもののことを「Node」という単位で管理します。

スタート画面のタイトルもNode、スタートボタンもNodeになります。ブロックもコインもNodeという単位で管理します。

下記の画像の場合、赤い枠線で囲った犬のイメージ画像や「SpriteKit!」という文字、青・黄・赤のブロック、それぞれを全てノードという単位で管理していきます。
テキストも画像も全てノードという単位で管理します

3. 物理法則の影響を受けるようにできる

「物理法則」というのは、重力だったり摩擦だったり、そういったものの事を言います。

例えば、キャラクターに重力がかからない状態だとどうなるでしょう?
そのキャラクターはジャンプをしたきり地上に帰ってくることもなく、画面の外に飛び立ってしまうわけですw

SpriteKitでは、そのような重力や摩擦の設定を簡単に行うことが出来ます。

物理法則を簡単に設定出来ることによって、ブロックを落とした時に自然に落ちたり、逆に宙に浮いているかのようにも設定出来たり。
ボールが物体にぶつかった時に自然に跳ね返ったり・・という事が出来るわけです。

あとがき

今回書いた3つの事は、僕がSpriteKitを使っていて理論として知っておくといいんじゃないかな、と感じたことを書いてみました。

今回はコードが載っていない退屈な記事だったかと思いますが、次回からはチマチマとコードを書いていこうと思います!
次回のSpriteKit第1回の記事は、12月上旬に投稿予定です。

SpriteKit第2回目の記事書きました!
【SpriteKitで始める #1】ベースとなるプロジェクトを作成する

ではでは
今回はこの辺で!ヽ(•̀ω•́ )ゝ✧

SwiftでSpriteKitを使う記事第0回のアイキャッチ画像

この記事が気に入ったらいいね!
して最新情報をチェックしよう!

スポンサーリンク