你好我在我的游戏中工作,但是当我试图改变场景时我遇到了问题。我按了一个按钮就可以了,但是当转移发生时,我看不到我的背景这是我的代码 这是我的游戏场景的代码。背景好了
import SpriteKit
class GameScene: SKScene {
// Next scene button
var nextButton: UIButton!
let background = SKSpriteNode(imageNamed: "BG")
override func didMoveToView(view: SKView) {
backgroundColor = SKColor.whiteColor()
// Background Image
background.position = CGPoint(x: size.width / 2, y: size.height / 2)
background.size = CGSize(width: 2100, height: 1200)
background.zPosition = -3
addChild(background)
// Next button Action
nextButton = UIButton(frame: CGRect(x: 0, y: 0, width: frame.size.width / 2, height:300))
nextButton.center = CGPoint(x: view.frame.size.width / 7.3, y: view.frame.size.width / 3)
nextButton.setTitle("Next Button", forState: UIControlState.Normal)
nextButton.setTitleColor(UIColor.redColor(), forState: UIControlState.Normal)
nextButton.addTarget(self, action: Selector("Next"), forControlEvents: UIControlEvents.TouchUpInside)
self.view?.addSubview(nextButton)
}
func Next() {
self.view?.presentScene(Play(), transition: SKTransition.crossFadeWithDuration(1.0))
nextButton.removeFromSuperview()
background.removeFromParent()
}
}
这是我的Play场景的代码。背景没有出现我不知道为什么
import Foundation
import SpriteKit
class Play: SKScene {
override func didMoveToView(view: SKView) {
backgroundColor = SKColor.whiteColor()
// Background Image
let background = SKSpriteNode(imageNamed: "BG")
background.position = CGPoint(x: size.width / 2, y: size.height / 2)
//background.size = CGSize(width: 2100, height: 1200)
background.zPosition = -3
addChild(background)
}
}
答案 0 :(得分:0)
您是否正在检查游戏场景是否实际转换过来了?。
如果不使用.sks文件,也应该使用大小初始化新场景。
func Next() {
nextButton.removeFromSuperview()
let scene = Play(size: self.size) // get size of current scene
self.view?.presentScene(scene, transition: SKTransition.crossFadeWithDuration(1.0))
}
如果你使用.sks文件(xCode可视化编辑器),你需要创建一个名为Play的新.sks文件,然后加载场景
func Next() {
if let scene = Play(fileNamed: "Play") {
nextButton.removeFromSuperview()
self.view?.presentScene(scene, transition: SKTransition.crossFadeWithDuration(1.0))
}
}
作为提示,您不必在更改场景后删除SKSpriteNodes。您已经将它们添加到场景中(addChild),它们将自动被删除。 你仍然需要移除UIKit的东西,例如你的UIButton,因为它们被添加到你的视图而不是SKScene。