Iphone 制作场景';s背景透明不工作。。。这是虫子吗?

Iphone 制作场景';s背景透明不工作。。。这是虫子吗?,iphone,ios,ipad,sprite-kit,Iphone,Ios,Ipad,Sprite Kit,有没有一种方法可以使一个场景的背景透明,并通过透明显示另一个场景 这样做的目的是使所呈现场景的背景如下: self.backgroundColor = [SKColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.5f]; 怎样才能看到黑暗背后的场景。但这样做是行不通的。背景是完全不透明的 有什么方法可以做到这一点吗?我认为这是不可能的,因为我尽我所知尝试了所有方法,但它总是忽略alpha值 这是不符合逻辑的,因为它在OpenGL上工作,但是S

有没有一种方法可以使一个场景的背景透明,并通过透明显示另一个场景

这样做的目的是使所呈现场景的背景如下:

self.backgroundColor = [SKColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.5f];
怎样才能看到黑暗背后的场景。但这样做是行不通的。背景是完全不透明的


有什么方法可以做到这一点吗?

我认为这是不可能的,因为我尽我所知尝试了所有方法,但它总是忽略alpha值


这是不符合逻辑的,因为它在OpenGL上工作,但是SKView是从UIView而不是从GLKView子类化的。

您不能使场景透明。如果要使视图透明,请执行以下操作


但是,您不能同时运行两个场景(仅在它们之间转换),虽然您可以向故事板页面添加多个SKView,但其中只有一个视图将全速更新,它们仅每隔几秒钟就会冻结或更改其他内容。

在iOS 8中,可以将场景的SKView设置为允许透明度,并将场景的背景色设置为具有透明度。然后将看到SKView后面的视图

UIView *parentView = ...;
[parentView addSubview:backgroundView];
[parentView addSubview:skViewWithScene];
skViewWithScene.allowsTransparency = YES;
scene.backgroundColor = [UIColor clearColor];
[skViewWithScene presentScene:scene];

透明度仅适用于iOS 8,必须检查iOS 7

在ViewController中,将透明度设置为:

SKView *skView = (SKView *)self.mySKView;
SKScene *skScene = [MyScene sceneWithSize:skView.bounds.size];
skScene.scaleMode = SKSceneScaleModeAspectFill;
skView.allowsTransparency = YES;
[skView presentScene: skScene];
在MyScene.m中,将背景设置为清晰颜色:

self.scene.backgroundColor=[UIColor clearColor]

swift3

@IBOutlet var gameScene: SKView!

func setupGameScene(){

    if let scene = SKScene(fileNamed: "GameScene") {
        scene.scaleMode = .aspectFill
        scene.backgroundColor = .clear
        gameScene.presentScene(scene)
        gameScene.allowsTransparency = true
        gameScene.ignoresSiblingOrder = true
        gameScene.showsFPS = true
        gameScene.showsNodeCount = true
    }
}

SpriteKit在这一点上几乎是半生不熟的。我必须创建许多控件,以使其最小限度地工作。有一行文字的SKLabeNodes?真正地SKShapeNodes不支持面具和其他东西。之前发布的答案仍然正确-SpriteKit视图不支持iOS 7和OS X v10.9(Mavericks)中的透明度。透明
SKView
s需要iOS 8或OS X v10.10(约塞米蒂)。