在spritekit swift问题中更改场景

问题描述 投票:0回答:2

我试图改变场景一旦玩家击中一个绿色的盒子,我有一个问题将场景更改为一个新的水平。在我的项目中,我有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)错误显示“变量在其自己的初始值内使用”

swift sprite-kit
2个回答
1
投票

这对我来说很奇怪..

let scene: SKScene = Level2Scene(fileNamed: scene!.size)

尝试

let scene: SKScene = Level2Scene(size: self.size)

1
投票

编译器正在告诉你究竟是什么问题。

let scene = Level2Scene(size: scene!.size)

你在创建scene的参数中使用Level2Scene变量你可能需要从你尚未创建的场景之外的其他东西中获取大小。

© www.soinside.com 2019 - 2024. All rights reserved.