簡體   English   中英

無法構建游戲場景,因為它沒有可訪問的初始化程序

[英]Game Scene cannot be constructed because it has not accessible initializers

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: PassengerNode!替換let passenger = SKSpriteNode(imageNamed: "passenger") let passenger: PassengerNode! 編譯器將拋出編譯器錯誤“由於無法訪問初始化程序,因此無法構建游戲場景”。 當我更改要聲明讓乘客的方式時,就會顯示此錯誤。 我要更改它的原因是,我想將其替換為一個類,以便乘客a。 可以具有不同的類型和不同的紋理(可以用不同的方法解決)b。 可以從父級中刪除,然后再次添加-希望沒有錯誤。

你有什么主意嗎? 我真的被某種方式卡住了:-?

如果只聲明其類型而沒有初始值的乘客,則需要在類中添加init(),因為編譯器不知道在創建對象時要賦予其初始值。

您可以創建一個init()並將值設置為passenger或將其刪除為

let passenger: PassengerNode! = nil

(這假設您的代碼在確保將其放入變量之前未引用該變量,或者在使用它之前檢查nil / optional)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM