删除SKView背景 - 粒子发射器 - SpriteKit

时间:2015-10-26 12:33:07

标签: ios sprite-kit particle-system

所以我按照this教程创建了一个小粒子发射器,用于当玩家达到目标时(有点像庆祝)。

我正在使用单个视图应用程序,就像教程一样,但我似乎无法删除发射器的背景......所以我在粒子下方得到一个黑色方块。

我更改了故事板中的View / SKView以清除颜色,但在应用运行时它仍然显示为黑色...

Apple Docs这样说: To create an emitter with no background color, set the opacity in the color picker to 0.

我使用编辑器在Particle.sks中执行了此操作:

Picker

但是当我运行该应用时,它仍会显示一个大小为View的彩色框...

如何删除所有背景,所以当粒子发射时,它只是粒子?

3 个答案:

答案 0 :(得分:0)

创建场景视图时,需要允许透明度,因此如果您有视图的自定义类,或者在视图控制器viewDidLoad中添加self.allowsTransparency = true;:添加view.allowsTransparency = true;

编辑:

- (void)viewDidLoad
{
    [super viewDidLoad];

    BokehScene * scene = [BokehScene sceneWithSize:_particleBackground.bounds.size];
    scene.scaleMode = SKSceneScaleModeAspectFill;
    self.view.allowTransparency = Yes;
    [_particleBackground presentScene:scene];
}

答案 1 :(得分:0)

要使粒子发射器的背景颜色透明,您需要将SKView.allowsTransparency = true和粒子发射器场景的背景设置为.backgroundColor = UIColor.blackColor()。colorWithAlphaComponent(0)  例如:

class GameViewController: UIViewController {

   override func viewDidLoad() {
    super.viewDidLoad()

    let skView = SKView()
    skView.frame = CGRectMake(100, 10, 200, 200)
    skView.allowsTransparency = true


    let scene = Emmiter() // this is your particle emitter class 
    scene.size = skView.bounds.size
    scene.scaleMode = .AspectFill
    scene.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0)


    skView.presentScene(scene)

    view.addSubview(skView)

   } 
}

答案 2 :(得分:0)

Swift 4 控制+从故事板中的SKView拖动到View Controller以创建插座skView。然后启用背景透明度并将背景颜色设置为清除。

import UIKit
import SpriteKit

class ViewController: UIViewController {

  var scene: Emitter!
  var size: CGSize! 

  @IBOutlet weak var skView: SKView!

  override func viewDidLoad() {
      super.viewDidLoad()

      size = self.skView.frame.size
      scene = Emitter(size: size)
      scene.backgroundColor = UIColor.clear
      skView.allowsTransparency = true
      skView.presentScene(scene)
  }
}