我对编码 (swift
) 和制作游戏都很陌生。我试图让我的游戏切换我创建的 SKScenes
,由于某种原因,当我尝试切换场景时,我只是看到灰屏,我不知道为什么。 (应该注意的是,我尝试转换的场景已经从之前的主场景中更改了。下面是我用来更改场景的方法。(我不希望 SKScene
s)
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch in touches {
let location = touch.locationInNode(self)
if(self.nodeAtPoint(location).name != nil && self.nodeAtPoint(location).name != "enter") {
userSequence.append(Int(self.nodeAtPoint(location).name!)!)
print("userSequence:\(userSequence)")
}
if(self.nodeAtPoint(location).name == "enter"){
//compareSequences()
if PreviewNumbersGameScene.sharedInstance.TempGeneratedSequence == userSequence.reverse(){
print(PreviewNumbersGameScene.sharedInstance.TempGeneratedSequence)
print("good")
let Winscene = WinGameScene(fileNamed: "WinGameScene")
self.scene!.view?.presentScene(Winscene)
}
else{
print("Temp:\(PreviewNumbersGameScene.sharedInstance.TempGeneratedSequence)")
loose()
print("bad")
}
}
}
}
这是我想要更改为的场景:(名称为 WinGameScene
)
import SpriteKit
class WinGameScene: SKScene{
//MARK: - Variables
//MARK: - View
override func didMoveToView(view: SKView) {
///* Setup your scene here */
loadView()
}
func loadView(){
backgroundColor = SKColor.greenColor()
print("winSceneLoaded")
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch in touches {
let scene = PreviewNumbersGameScene(fileNamed: "PreviewNumbersGameScene")
self.view?.presentScene(scene)
}
}
}
最佳答案
为了过渡到新场景,您应该执行以下操作:
if let winGameScene = WinGameScene(fileNamed: "WinGameScene") {
self.view?.presentScene(winGameScene)
}else{
print("error")
}
这里重要的是,在尝试执行此操作之前,您必须创建一个名为 WinGameScene.sks
的资源文件。您可以通过以下方式完成此操作:文件->新建->文件...->资源->SpriteKit 场景。
关于ios - Swift 2 SkScene 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34844558/