Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

25
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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ゲームを作ってみましょう。

25
22
0

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

Qiita Advent Calendar is held!

Qiita Advent Calendar is an article posting event where you post articles by filling a calendar 🎅

Some calendars come with gifts and some gifts are drawn from all calendars 👀

Please tie the article to your calendar and let's enjoy Christmas together!

25
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?