如何在故事板中创建一个按钮来启动在xcode swift中使用spritekit创建的游戏

时间:2015-08-08 05:53:30

标签: ios xcode swift

我使用spritekit和swift在xcode中创建了一个非常简单的游戏。现在我想要一个主菜单,在我第一次启动应用程序时显示。然后我想要一个按钮,当点击时,将启动游戏。有没有办法做到这一点?我应该使用故事板吗?非常感谢! :)

3 个答案:

答案 0 :(得分:1)

使用SpriteKit你可以这样做:

GameViewController.swift中使用以下代码替换您的代码:

import UIKit
import SpriteKit

class GameViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        //load your GameScene from viewController
        let scene = GameScene(size: view.bounds.size)
        let skView = view as! SKView
        skView.showsFPS = false
        skView.showsNodeCount = false
        skView.ignoresSiblingOrder = true
        scene.scaleMode = .ResizeFill
        skView.presentScene(scene)

    }

    override func prefersStatusBarHidden() -> Bool {
        return true
    }
}

此代码将在您开始游戏时加载GameScene

GameScene.swift课程中添加此代码:

import SpriteKit

class GameScene: SKScene {
    //create playbutton instance
    let playButton = SKSpriteNode(imageNamed: "play_unpresed")

    override func didMoveToView(view: SKView) {

        backgroundColor = UIColor.greenColor()
        addPlayButton()  //add playbutton
    }

    func addPlayButton(){

        playButton.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))
        playButton.xScale = 0.2
        playButton.yScale = 0.2
        self.addChild(playButton)
    }

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
        /* Called when a touch begins */
        for touch in (touches as! Set<UITouch>){
            let location = touch.locationInNode(self)
            //this will detect touch on play button
            if self.nodeAtPoint(location) == self.playButton {
                //it will transits to the next scene
                let reveal = SKTransition.flipHorizontalWithDuration(0.5)
                let letsPlay = playScene(size: self.size)
                self.view?.presentScene(letsPlay, transition: reveal)

            }
        }

    }
    override func update(currentTime: CFTimeInterval) {
        /* Called before each frame is rendered */
    }
}

当你按下一个按钮时,这将加载一个按钮,它将带你到你的playScene为此,你必须通过点击Command + N然后点击iOS Source - &gt;来创建一个新文件。 Cocoa Touch类 - &gt;下一个 - &gt;添加类名playScene - &gt; SKScene的子类 - &gt;并创造它。

import SpriteKit

中添加playScene.swift

检查THIS示例项目以获取更多信息。

HERE是spriteKit的简单教程。

答案 1 :(得分:0)

  1. 您只需将一个viewController拖到storyBoard。

  2. 设置Is Initial View Controller,在其上添加一个按钮

  3. control+drag从按钮到您的游戏视图控制器。选择show

  4. enter image description here

    我已经测试过了。它可以工作。当我单击按钮时,它将导航到游戏视图控制器

答案 2 :(得分:0)

故事板

或者,您可以使用Storyboards。在另一个S.O.的M.W.E.中。问题他们有一个基本的菜单&#34;建立。

在你的情况下,你要做的是:

  • 转到Main.storyboard。
  • 右侧工具栏上的
  • ,找到视图控制器
  • 将视图控制器拖到Main.storyboard
  • 点击新视图控制器
  • 点击右侧工具栏 - 身份检查员(看起来像名片)
  • 将Class更改为GameViewController
  • 点击左侧层次结构中的视图(在新视图控制器下)
  • 点击身份检查员
  • 将课程更改为SKView
  • 点击原始视图控制器
  • 点击身份检查员
  • 将类更改为UIViewController
  • 点击原始UIViewController中的视图
  • 点击身份检查员
  • 将课程更改为UIView
  • 找到右侧工具栏底部的按钮
  • 将其拖到第一个视图
  • 右键单击从按钮拖动到第二个视图
  • 在弹出菜单上的action segue下,单击show
  • 右键单击从按钮向上拖动,添加水平中心约束
  • 右键单击从右侧按钮拖动,垂直添加中心约束

图片

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here