一旦玩家遇到一个绿色的盒子,我试图改变场景,我在将场景改为下一个级别时遇到了问题。在我的项目中,我有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) 错误显示“变量在其自己的初始值中使用”
答案 0 :(得分:1)
let scene: SKScene = Level2Scene(fileNamed: scene!.size)
试
let scene: SKScene = Level2Scene(size: self.size)
答案 1 :(得分:1)
编译器正在告诉你究竟是什么问题。
let scene = Level2Scene(size: scene!.size)
您在参数中使用scene
变量来创建Level2Scene
您可能需要从您尚未创建的场景之外的其他内容中获取大小。