我试图改变场景一旦玩家击中一个绿色的盒子,我有一个问题将场景更改为一个新的水平。在我的项目中,我有Level2Scene.swift和Level2Scene.sks我使用Level2Scene.sks来设计关卡,我使用Level2Scene.swift来控制场景中发生的事情。这是我在玩家点击绿框时的代码。
func didBeginContact(contact: SKPhysicsContact) {
var bodyA = contact.bodyA
var bodyB = contact.bodyB
var transition: SKTransition = SKTransition.fadeWithDuration(1)
let scene: SKScene = Level2Scene(fileNamed: scene!.size)
if bodyA.categoryBitMask == 1 && bodyB.categoryBitMask == 2 || bodyA.categoryBitMask == 2 && bodyB.categoryBitMask == 1{
self.view?.presentScene(scene, transition: transition)
}
}
问题在于let场景:SKScene = Level2Scene(fileNamed:scene!.size)错误显示“变量在其自己的初始值内使用”
这对我来说很奇怪..
let scene: SKScene = Level2Scene(fileNamed: scene!.size)
尝试
let scene: SKScene = Level2Scene(size: self.size)
编译器正在告诉你究竟是什么问题。
let scene = Level2Scene(size: scene!.size)
你在创建scene
的参数中使用Level2Scene
变量你可能需要从你尚未创建的场景之外的其他东西中获取大小。