概要
iOSで2Dゲームを作るならSpritekitを使う人が多いと思います。
Spritekitでアプリを作るためにはXcodeでGameを選択し、Game TechnologyでSpriteKitを選択するのですが、これで作るといらない処理が結構入ってるんですよね(変な飛行機の絵が回転するやつとかw)
自分はゲームアプリではStoryboardも使わない派なので、邪魔だったります。
なので、Spritekitがとりあえず動くだけの最小限のテンプレート的なものを用意してきました。
AppDelegate
まず必須なのがAppDelegate。
didFinishLaunchingWithOptionsを定義しておきます。
ここではViewControllerを呼ぶ処理を記述します。
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool{
let viewController: ViewController = ViewController()
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = viewController
self.window?.makeKeyAndVisible()
return true
}
ViewController
AppDelegateから呼ばれます。
ViewControllerで扱うViewは通常UIViewですが、SpritekitではSkViewを指定します。
viewDidLoadメソッドでは、タイトル画面となるTitleSceneを表示する処理を行っています。
import UIKit
import SpriteKit
class ViewController: UIViewController {
override func loadView() {
// viewをSKViewに設定
let skView = SKView(frame: UIScreen.mainScreen().bounds)
self.view = skView
}
override func viewDidLoad() {
// TitleSceneを表示する
super.viewDidLoad()
let skView = self.view as! SKView
skView.ignoresSiblingOrder = true
let scene = TitleScene(size: skView.bounds.size)
skView.presentScene(scene)
}
}
TitleScene
最後にタイトル画面となるSceneです。
通常はこのSceneにスタートボタンなどを追加する、またはSceneをタップすることでゲームを開始という処理を実装していくことになると思います。
import UIKit
import SpriteKit
class TitleScene: SKScene {
override func didMoveToView(view: SKView) {
// todo
}
}
まとめ
以上がSwiftでSpritekitを使う際の最小限の構成になると思います。
一応テンプレートはgithubにあげております。
みなさんもSpritekitで2Dゲームを作ってみましょう。