2016-04-06 11 views
1

Nasıl bulunur? Bu hataları alıyorum ve nasıl düzeltileceğini bilmiyorum. Böyle sabit boyutlu SKScene oluşturmak istiyorum:SKScene

width: screenWidth 
height: screenHeight/10 

Ben doğru bir şekilde SKScene alt sınıfı için nasıl bilmiyorum.

enter image description here

cevap

2

sınıf başlatıldı önce özelliklerine erişmeye çalışıyorsanız gibi bu oluyor. Eğer super.init satırdan sonra, bu örneğin çalışacağız o .: Sadece düşünce

... 
super.init(size: fixedSize) 
self.name = name 
self.buttons = buttons 

düzenleme taşırsanız

, bu olsa bir istisna vardır ve ben sadece bu teyit ettik. Oyun alanı hoşlanmıyor, ama gerçek bir uygulama yapar:

sınıf someClass: NSObject {

let a = 2 
    var b = 3 

    override init(){ 
     let c = self.a 
     let d = self.b 
     super.init() 
     print("c: \(c), d:\(d)") 
    } 

    func foo(){ 
     print("bar \(a)") 
    } 

} 
+0

Evet, aptal sorudan önce ayarlanması gerekiyor. –

+1

hareketli ifadelerini çözdüm Eğer init uygulamasından önce uygulamak istediğiniz değerlere sahipseniz, o zaman 'static let myVar = 123' –

+0

olarak atamak en iyisi orijinal yanıtımdaki duruma bir istisna ekledim. Oyun alanı neden çöktü, ama uygulama çalışır, ben hiçbir fikrim yok, ama sanırım bu değerlerin varsayılan değerleri çünkü varsayalım. ': –

0

ben bu şekilde çözmüş:

init(buttons: Button) { 
     self.buttons = buttons 
     super.init() 
     let fixedSize = CGSize.init(width: screenWidth, height: screenHeight/10) 
     super.size = fixedSize 
    } 

Ben "adı" kaldırıldı ı don nedeniyle Artık buna ihtiyacım var. self.buttons = buttons'u değiştirdim çünkü super.init()

+1

... bu retina vb sağlamak için ölçeklendirme kullanmayı unutmayın .. kaplıdır ... 'UIscreen.mainscreen(). scale' örn Bu kolları 2x @ 3x vs .. boyutlarında döndürür. .. UIScreen.mainScreen() bounds.size.height * UIScreen.mainScreen() ölçek return: –

+0

Yani ben doğrudan kullanabilir? Yoksa gereksiz mi? –

İlgili konular