LoginSignup
22

More than 5 years have passed since last update.

【Swift】Spritekitを使う時の最小限の雛形

Posted at

概要

iOSで2Dゲームを作るならSpritekitを使う人が多いと思います。
Spritekitでアプリを作るためにはXcodeでGameを選択し、Game TechnologyでSpriteKitを選択するのですが、これで作るといらない処理が結構入ってるんですよね(変な飛行機の絵が回転するやつとかw)
自分はゲームアプリではStoryboardも使わない派なので、邪魔だったります。
なので、Spritekitがとりあえず動くだけの最小限のテンプレート的なものを用意してきました。

AppDelegate

まず必須なのがAppDelegate。
didFinishLaunchingWithOptionsを定義しておきます。
ここではViewControllerを呼ぶ処理を記述します。

AppDelegate.swift
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を表示する処理を行っています。

ViewController.swift
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をタップすることでゲームを開始という処理を実装していくことになると思います。

TitleScene.swift
import UIKit
import SpriteKit

class TitleScene: SKScene {
    override func didMoveToView(view: SKView) {
        // todo
    }
}

まとめ

以上がSwiftでSpritekitを使う際の最小限の構成になると思います。
一応テンプレートはgithubにあげております。

みなさんもSpritekitで2Dゲームを作ってみましょう。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22