【问题标题】:how to add new SKScene With in SKScene in SpritKit Swift如何在 SpritKit Swift 的 SKScene 中添加新的 SKScene
【发布时间】:2014-08-24 07:40:37
【问题描述】:
我必须在 SpritKit 中快速添加下一个 SKScene
override func touchesBegan(touches: NSSet!, withEvent event: UIEvent!)
{
var objgamescen = GameScene()
//objgamescen.initWithSize(self.size, playerWon: true)
self.view .presentScene(objgamescen)
}
那么 GameScene 是 Blanked 并且 Self.frame 是 (0.0,0.0,1.0,1.0)
【问题讨论】:
标签:
objective-c
switch-statement
swift
sprite-kit
sprite
【解决方案1】:
听起来你只是想重新启动场景,你可以通过创建这样的函数来做到这一点
func goToGameScene(){
let gameScene:GameScene = GameScene(size: self.view!.bounds.size) // create your new scene
let transition = SKTransition.fadeWithDuration(1.0) // create type of transition (you can check in documentation for more transtions)
gameScene.scaleMode = SKSceneScaleMode.Fill
self.view!.presentScene(gameScene, transition: transition)
}
然后你只需在你希望它发生的地方调用它
goToGameScene()
【解决方案2】:
在 SKScene 中添加了多个场景:
let skView = self.view as SKView
skView.showsFPS = false
skView.showsNodeCount = false
skView.ignoresSiblingOrder = true
/* Set the scale mode to scale to fit the window */
var scene: HomeScene!
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
if UIScreen.mainScreen().bounds.size.width < 568 {
scene = HomeScene(size: CGSizeMake(480, 320))
}else {
scene = HomeScene(size: CGSizeMake(568, 320))
}
}else {
scene = HomeScene(size: CGSizeMake(1024, 768))
}
scene.scaleMode = .AspectFill
skView.presentScene(scene)