Posted at

【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()

}
}


以上です。

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


参考文献