2014-06-16 40 views
13

我試圖用Swift子類別SKShapeNode。到目前爲止,我有這樣的事情:Swift對SKShapeNode進行子類化

import UIKit 
import SpriteKit 

class STGridNode: SKShapeNode { 

    init() { 
     super.init() 
     self.name = "STGridNode" 
     self.fillColor = UIColor(red: 0.11, green: 0.82, blue: 0.69, alpha: 1) 
    } 

} 

在我的代碼,我想這樣做的線沿線的東西:

let s = STGridNode(rectOfSize: CGSize(width: 100, height: 100)) 

所以我的問題是 - 如何在初始化器實現rectOfSizeSTGridNode?我已經試過:

init(rectOfSize: CGPoint) { 
    super.init(rectOfSize: rectOfSize); 
} 

但是,這給出了一個錯誤:「找不到INIT接受過載提供的參數」

+1

什麼錯誤,你讓當您嘗試你的初始化方法? – drewag

+0

@drewag,我已經用更多的細節更新了我的問題。謝謝:) – samturner

回答

22

你有兩個問題,你試過代碼:

  1. rectOfSizeSKShapeNode需要CGSizeSKShapeNode一個CGPoint
  2. rectOfSize是一個方便的初始值設定所以你將無法從子類中調用它。你將不得不調用super.init()和實施RECT功能自己

你可以做這樣的事情:

init(rectOfSize: CGSize) { 
    super.init() 

    var rect = CGRect(origin: CGPointZero, size: rectOfSize) 
    self.path = CGPathCreateWithRect(rect, nil) 
} 
+0

太棒了,謝謝 - 非常棒! – samturner

+1

self.path = CGPath(rect:rect,transform:nil) –