2017-02-03 74 views
0

了我製作的一個叫做Player中的SKShapeNode子類。 我沒有錯誤,構建不會失敗,但精靈不會顯示在屏幕上。 這是我要創建的這個精靈:雪碧沒有出現在現場

override func didMove(to view: SKView) { 
    let sprite = Player(circleOfRadius: 45, fillColor: myColors.blue, strokeColor: myColors.yellow) 
     sprite.position = CGPoint(x: frame.midX, y: frame.midY) 

     self.addChild(sprite) 
} 
+0

無關,但shapenode不是精靈:) – Fluidity

+0

@Fluidity哈哈,謝謝:)它不會被稱爲精靈,這只是一個測試,不工作OO ... – swiftnewbie

+3

你在初始化器中調用'super.init()'而不是'super.init(circleOfRadius:circleOfRadius)'。 – NobodyNada

回答

0

問題是你super.init() ...它是空白......你用嬰兒車circleOfRadius做出自己的初始化,但是這意味着,因爲你沒有什麼計算機沒有做任何事情

更糟糕的是,super.init(circleOfRadius: circleOfRadius)將無法​​工作或者是因爲它不是一個指定初始化 ...這是一個方便初始化它調用到super.init時,你不能使用

所以,基本上你必須訴諸使用super.init()但隨後*更改剛made`

空形狀的路徑添加這一點,你會得到你的圈子:

self.path = CGPath.init(roundedRect: CGRect(x: 0, y: 0, width: circleOfRadius*2, height: circleOfRadius*2), cornerWidth: 45, cornerHeight: 45, transform: nil) 

enter image description here

+1

謝謝,它正在工作。我現在可以看到這個圓圈 – swiftnewbie

+0

這是你代碼中其他地方的問題然後:{ 我把你的代碼片段複製到了我的圈子裏,這個圈子出現了@swiftnewbie – Fluidity

+0

它可能與你的'myColors'有關,也是......哈哈我'我們已經做到了這一點,確保你的背景與你的節點顏色不一樣......並檢查'zPosition',並且沒有任何東西可以覆蓋它@swiftnewbie – Fluidity