2016-03-26 25 views
5

Sadece benim için çok basit bir şey yapmak istedim, bu bir görünümün tüm arka planında bir yayıcı haline getiriyordu ... o zaman ben de görünümün görünüşünü doldurup doldurmasını istiyorum. Yaptığım her ne olursa olsun doğru görünmek için ...SKEmitterNode nasıl yeniden boyutlandırılır?

Sadece yayıcıyı ölçeklemek istemiyorum. Nesnelerin doğru büyüklükte kalmasını istiyorum, ama yayıcının alanın değişmesini istiyorum ... "tuval boyutu" (photosize edilmeden) seçeneği gibi düşünün.

Bu etkiyi kullanırım örneğin, tüm sahneyi kar ya da yağmur eklemek ya da bir kar küresi yapmak için ...

Şey, belki de doğru yere bakmıyorum, ama üzerinde herhangi bir boyut özelliği görünüyor Bir SKEmitterNode sadece okunur ... ne yapıyorum yanlış?

Burada ortaya çıkan yayıcının görünümün ortasında küçük bir dikdörtgen olduğu bazı kodlar.

override func viewDidLoad() { 
    super.viewDidLoad() 

    if let scene = GameScene(fileNamed:"GameScene") { 
     // Configure the view. 
     let skView = self.view as! SKView 
     skView.showsFPS = true 
     skView.showsNodeCount = true 
     if let emitter = SKEmitterNode(fileNamed: "Bokeh") { 
      emitter.position = view.center 
      scene.addChild(emitter) 
     } 
     /* Sprite Kit applies additional optimizations to improve rendering performance */ 
     skView.ignoresSiblingOrder = true 

     /* Set the scale mode to scale to fit the window */ 
     scene.scaleMode = .AspectFill 
     skView.presentScene(scene) 
    } 
} 

Biraz daha açıklığa kavuşmalıyım. Kar için, parçacıkların sahneye girmeden önce örnek almasını ve sahneye düşmesini ve sahneden çıkıp sahneden çıktıktan sonra ölmesini ve sonra da düşmeye devam etmesini ... istiyorum. Karın sahnenin tüm sınırlarını ele geçirmesini isterim.

cevap

6

Ne particlePositionRange denir arıyoruz: Bir parçacığın konumu için izin rasgele değerlerin

aralık.

emitterNode.particlePositionRange = CGVector(dx: dx, dy: dy) 

dx senin yayıcı genişliği olmalı ve dy yüksekliği:

Böyle değiştirebilirsiniz. Yani bu bir sahnenin boyutu olabilir (farklı bir şekilde belirtilmemişse, sahnenin varsayılan boyutunun 1024x768 olduğunu unutmayın).

Aynı şey Pozisyon Aralığı bölümünde değerleri değiştirerek Parçacık Editör kullanarak yapabilirsiniz:

position range

+0

yüzden görünümün merkezinde yayıcıyı konumlandırmak ve genişlik olarak aralığını ayarlamak ve yükseklik? Kulağa çok kötü gelmiyor. :-) –

+0

tamamen çalıştı ve bilmek ve anlamak için böyle bir rahatlama :-) çok teşekkürler! –

+0

bir soru daha ... kar için, parçacıkların sadece başlangıçta görünümünde rastgele değil, görünümünde ABOVE görünmesini nasıl yapabilirim? –