无法构建游戏场景,因为它没有可访问的初始值设定项

时间:2016-02-06 07:17:45

标签: swift sprite-kit

Xcode正在丢失错误,我不知道如何解决它。也许有人可以给我一个手或一个好的提示?

这是我的游戏场景中的代码:

var currentLevel: Int = 1

var platforms: PlatformsNode!
var platformNode1: PlatformNode!
var platformNode2: PlatformNode!
var platformNode3: PlatformNode!

var platformArray = [SKNode]()

let passenger = SKSpriteNode(imageNamed: "passenger")

var passengerNumber:Int = 1
var startPlatform =         [3, 3, 2, 1, 2]
var destinationPlatform =   [1, 1, 3, 2, 1]

// Level selection
class func level(levelNum: Int) -> GameScene? {
    let scene = GameScene(fileNamed: "Level\(levelNum)")! // <- compiler error
    scene.currentLevel = levelNum
    scene.scaleMode = .AspectFill
    return scene
}

我想要更换 let passenger = SKSpriteNode(imageNamed: "passenger") 使用let passenger: PassengerNode!编译器会丢弃编译器错误&#34;无法构建游戏场景,因为它没有可访问的初始化器&#34;。 当我改变我想宣布让乘客的方式时,这个错误就出现了。 我想改变它的原因是,我想用一个类替换它,以便乘客 一个。可以有不同的类型与不同的纹理(这可以不同的方式解决) 湾可以从父母中删除,然后再添加 - 希望没有错误。

你有什么想法吗?我真的被卡住了 - ?

1 个答案:

答案 0 :(得分:1)

声明只有类型且没有初始值的乘客需要在类中添加init(),因为编译器在创建对象时不知道给它的初始值。

您可以创建一个init()并将值设置为乘客或将其设置为

let passenger: PassengerNode! = nil

(这假设您的代码在确保在其中放入某些内容之前不引用该变量或在使用之前检查nil / optional)。