我为两个屏幕设置了我的UI,我不想在main.storyboard中连接屏幕。我想点击一个按钮,它将进入该屏幕,我将做淡化动画和之后的事情。当我按下按钮时,我只需要知道如何进入下一个屏幕。我可以举一个例子说明我在下面谈论的内容。
示例:在开始游戏之前,它会告诉您点击屏幕,然后当您点击文本时淡出。这就是我想用我的游戏做的事情。我不确定这是否是另一个屏幕,或者如果这是一个视图,一旦点击屏幕,某些标签就会消失。
我的MainMenuViewController:
import UIKit
import SpriteKit
class MainMenuViewController: UIViewController {
var mainMenuScene: MainMenuScene!
@IBOutlet weak var playButton: UIButton!
@IBAction func playButtonPressed(sender: AnyObject) {
mainMenuScene.playButtonPressed(sender)
}
@IBAction func playerButtonPressed(sender: AnyObject) {
println("player")
}
@IBAction func LeaderboardButtonPressed(sender: AnyObject) {
println("leaderboard")
}
@IBAction func shopButtonPressed(sender: AnyObject) {
println("shop")
}
override func viewDidLoad() {
super.viewDidLoad()
//set up game screens
// Configure the view
// store a ref
// Create and configure the scene
mainMenuScene?.scaleMode = .AspectFill
// Present the scene
}
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> Int {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return Int(UIInterfaceOrientationMask.AllButUpsideDown.rawValue)
} else {
return Int(UIInterfaceOrientationMask.All.rawValue)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Release any cached data, images, etc that aren't in use.
}
override func prefersStatusBarHidden() -> Bool {
return true
}
}
我的MainMenuScene:
import Foundation
import UIKit
import SpriteKit
class MainMenuScene: SKScene {
var movingGround: PPMovingGround!
var square1: PPSquare1!
var wallGen: PPWallGen!
var isStarted = false
var playButton: UIButton!
func playButtonPressed(sender: AnyObject) {
start()
}
func start() {
isStarted = true
square1.stop()
movingGround.start()
wallGen.startGenWallsEvery(1)
}
override func didMoveToView(view: SKView) {
}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
}
override func update(currentTime: CFTimeInterval) {
}
}
我想将此代码连接到我的GameScene文件。我该怎么做?
答案 0 :(得分:2)
我想我知道你的目标是什么,因为你不想直接使用 Main.storyboard ,你可以这样做:
presentViewController(YourNextViewController, animated: true, completion: nil)
你会在你当前所在的ViewController
中拨打该电话进入下一个。
让我们说你在主屏幕上,正如你在 Flappy Bird 中所说的那样,当你点击按钮时,它可能会变成另一个< strong>查看控制器
我的建议是将此方法嵌套在函数中,因此您可以在gameStart
函数中调用它,如下所示:
func changeViewControllers() {
presentViewController(GameViewController, animated: true, completion: nil)
}
然后在gameStart()
:
func gameStart() {
changeViewControllers()
//other code
}
//=====================================================================
好的,当您点按播放按钮时,我会帮助您转到另一个视图,添加以下代码:
@IBAction func playButtonPressed(sender: AnyObject) {
mainMenuScene.playButtonPressed(sender)
}