Help us understand the problem. What is going on with this article?

【Swift2】SingleView(第一画面)からSpriteKit(第二画面)を表示する方法

More than 3 years have passed since last update.

完成図

SingleView(第一画面)からボタンを押すと、SpriteKit(第二画面)に移行する。

SingleView(第一画面)

スクリーンショット 2016-02-21 22.30.45.png

SpriteKit(第二画面)

スクリーンショット 2016-02-21 22.30.52.png

Step1. Main.storyborad を実装する

  • ゲーム画面用の View Controllerを追加する
  • Toolbar を追加する
  • Segues を設定する。 スクリーンショット 2016-02-21 21.11.07.png

Step2. フレームワークを追加する

  • Build Phases -> Link Binary With Libraries から
  • +を押す
  • SpriteKit と入力し、SpriteKit.frameworkを追加する スクリーンショット 2016-02-21 21.16.58.png

Step3. ゲーム画面用 View Controller を設定する

  1. Main.storyboardを右クリックし、New File -> iOS -> Source から Cocoa Touch Class を追加する
  2. Sublass of:を UIViewCOntroller にする
  3. Class: をViewController_game にする(任意の名前)
  4. Next を押す
  5. Create を押す スクリーンショット 2016-02-21 21.23.37.png
  6. Main.storyboardから二つ目のView Controller のshow the identity inspectorからCustom Class を3.で追加した ViewController_gameに設定する

スクリーンショット 2016-02-21 21.30.04.png
7. ゲーム画面を表示する Viewを追加する
8. View の Custom Class を SKView に設定する
スクリーンショット 2016-02-21 21.33.28.png

Step4. ゲームを実装する

  1. Main.storyboardを右クリックし、New File -> iOS -> Source から Swift File を追加する
  2. 名前をGameScene.swiftに設定し、Createを押す
    スクリーンショット 2016-02-21 21.37.29.png

  3. GameScene.swiftを実装する

GameScene.swift
import SpriteKit

class GameScene: SKScene {

    var testLavel = SKLabelNode()

    override func didMoveToView(view: SKView) {

        self.backgroundColor = UIColor.blackColor()

        testLavel.fontName = "Helvetica"
        testLavel.fontSize = 50
        testLavel.text = "表示成功"
        testLavel.fontColor = SKColor.whiteColor()
        testLavel.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))
        testLavel.zPosition = 1
        self.addChild(testLavel)

    }

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    }

    override func update(currentTime: CFTimeInterval) {
    }
}

Step5. ViewController_game.swift の設定をする

  1. Main.storyboard から View の Outlet を作成する
  2. Name を game_scene
  3. Type を SKView とする スクリーンショット 2016-02-21 21.52.11.png
  4. ViewController_game.swiftの設定をする
ViewController_game.swift
import UIKit
import SpriteKit

class ViewController_game: UIViewController {

    @IBOutlet weak var game_scene: SKView!

    override func viewDidLoad() {
        super.viewDidLoad()

        // シーン
        let gscene = GameScene()
        let skview = self.game_scene

        gscene.size = game_scene.frame.size


        // FPSカウント表示
        skview.showsFPS = true
        skview.showsNodeCount = true

        skview.presentScene(gscene)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()

    }
}

以上です。

ありがとうございました。

参考文献

yuyu_rg
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away