所以我按照this教程创建了一个小粒子发射器,用于当玩家达到目标时(有点像庆祝)。
我正在使用单个视图应用程序,就像教程一样,但我似乎无法删除发射器的背景......所以我在粒子下方得到一个黑色方块。
我更改了故事板中的View
/ SKView
以清除颜色,但在应用运行时它仍然显示为黑色...
Apple Docs这样说:
To create an emitter with no background color, set the opacity in the color picker to 0.
我使用编辑器在Particle.sks
中执行了此操作:
但是当我运行该应用时,它仍会显示一个大小为View
的彩色框...
如何删除所有背景,所以当粒子发射时,它只是粒子?
答案 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)
}
}