2014-06-16 26 views
13

Swift ile SKShapeNode sınıfını alt sınıflara ayırmaya çalışıyorum. nasıl Başlatıcı içinde rectOfSize uygularım -SKShapeNode'u Altyazı ile Alt Sınıflandırma

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

Benim soru yani: Ben çizgisinde bir şey yapmak öylesine istiyorum Benim kod

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) 
    } 

} 

: Şimdiye kadar böyle bir şey var STGridNode için? Ben denedim:

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

Ama bu bir hata veriyor: 'kabul init için bir aşırı bulunamadı verilen argümanlar'

+1

Eğer initialize yöntemi çalıştığınızda hangi hata alıyorsanız? – drewag

+0

@drewag, Sorumu biraz daha ayrıntılı bir şekilde güncelledim. Teşekkürler :) – samturner

cevap

22

Sen çalıştı kodu ile iki sorun var:

    SKShapeNode yılında
  1. rectOfSize bir CGSize değil SKShapeNode bir CGPoint
  2. rectOfSize alan bir kolaylık başlatıcısı olduğunu böylece bir alt sınıftan onu arayamayacaksınız. Sen Böyle bir şey yapabiliriz rect Fonksiyonalite kendini

super.init() arayıp uygulamak zorunda kalacak:

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

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

Harika, teşekkür ederim - harika çalışıyor! – samturner

+1

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

İlgili konular