Tetloop - 隙間を通し続けるシンプルなゲーム MOONGIFT
本サイトの更新が滞っておりますが、現在申請中のゲームがリリースされたらまたソースコードを公開する予定です。
以前、iOS Advent Calendar 2013に投稿した、Sprite Kitでブロック崩しが結構集客してくれたので、当サイトの更新再開を記念(?)して再びQiitaで記事を公開しました。
SpriteKit - SwiftとSprite Kitでボイド - Qiita
やっぱり人工無脳とか人工生命とか面白いので、こういうのを活かしたゲームも作ってみたいです。
iOS 8ではSpriteKitにかなり変更が加えられました。
概要はWhat’s New in iOS: iOS 8.0に、
詳細はSpriteKit Changesにまとめられています。
日本語だと、iOS 8 for Developers - Apple Developerに少しだけ記述があります。
※ ちなみに、iOS 7.1での変更点はiOS 7.0 to iOS 7.1 API Differencesにあり、ほんの少しだけです。
今回は、3D関連や物理エンジン、アニメーション関連など多数のアップデートがあり、Nodeの種類も増えました。
また、XcodeのGUIでシーンのコンテンツも編集できるようになりました。
(Game
テンプレートを利用してプロジェクトを作成すると、sks
ファイルが用意されていてGUIでそのまま編集可能になっています。)
正直な所、変更点が多すぎて全て追えていないのですが、気になったものをいくつか触ってみました。
Fieldは「場」といったところでしょうか。 バネや放射状の物理効果を与えることができるようです。
かなりいろいろなことができるようで、まだ把握しきれていません。 ひとまず箱の周りを円がバネっぽく動くサンプルを作りました。
光を追加するノードです。ドラクエの松明的な表現が簡単にできそうでありがたいです。 サンプルでは画面右上に置いています。
箱は光を受けているのがわかると思います。円は光の影響を受けていません。
(SKSpriteNode
はlightCategoryBitMask
が設定できため。どうやらSKSpriteNode
にしか適用できないようです。)
Nodeに設定したSKPhysicsBody
を枠線で表示してくれる機能です。
iOS 7.1で追加されていたようです。知りませんでした。
これでようやく他の物理エンジンと同じように、物理体を目で確認しながらデバッグできるようになります。
色がかなり見づらいのが気になりますが…。
今回はここまで。ソースコードはこちらです。
sj-posts-apps/iOS8Features at master · tnantoka/sj-posts-apps
他の作業をする中で新機能を触ることがあれば、また追記します。
以前は初作品としてRPGを作ろうとしていたんですが、
いきなり規模が大きすぎたのもあり断念してしまいました。
今回はとにかくストアにリリースすることを目標に、小さなゲームを作ってみました。
おそらく最後のObjective-Cアプリになると思います。
次からはSwiftで書く予定。
某パズルゲームの棒を主人公(?)にしたゲームです。
ひたすらブロックを消していくだけの単純なものです。
トイレや電車での暇つぶしにでもどうぞ。
ソースコードは以下に公開しています。
特別なことは何もしていませんが、実際にストアに並んでいるアプリのソースなので、参考になる点があるかもしれません。
※ 音楽やフォントなどの素材は取り除いていますのでご了承ください。
楽をするために、ゲーム画面とオープニング画面以外はUIKitで実装しています。
(ボタンの処理や設定画面の作成をSprite Kitでやると手間のため)
需要があれば解説記事とかも書きたいと思いますので、
ここなんでこんなことしてんの?とかあればお気軽にどうぞ。
それでは、よろしくお願いします。
現時点で日本語唯一のSprite Kit本を読んでみました。
以下の3つのサンプルゲームの作り方が入った実践的な内容になっており、この1冊を読めばカジュアルゲームをリリースできるところまでいけると思います。
個人的に最もためになったのは、
の2つの内容でした。
パーティクルは、本サイトも含め「Xcodeでsksファイルを作って、それをSKEmitterNode
に読み込めばほら簡単」という説明で終わっているものが多いんですが、この本ではロケットの噴射に見せかける例を使って、実践的なカスタマイズが紹介されています。
フロー設計については、UIKitと組み合わせるのか、全部Sprite Kitで作るのか、それぞれのメリット・デメリットなどがわかりやすく解説されています。
というわけで、オススメの1冊です。