iphone - tutorial - Hacer que el fondo de SKScene sea transparente no funciona... ¿es esto un error?
xcode developer (5)
¿Hay alguna manera de hacer que el fondo de SKScene sea transparente y presentar esa escena sobre otra viendo a través de la transparencia?
La idea es tener los antecedentes de la escena presentada de esta manera:
self.backgroundColor = [SKColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.5f];
lo que permitiría ver la escena detrás de oscurecer. Pero hacer esto no está funcionando. El fondo se presenta completamente opaco.
¿Hay una manera de hacer eso?
Creo que eso no es posible, ya que intenté todo lo que sé, sigue ignorando el valor alfa.
Lo cual no es lógico ya que funciona sobre OpenGL, pero el SKView está subclasificado desde UIView, no desde GLKView.
En iOS 8, puede establecer el SKView de la escena para permitir la transparencia y configurar el color de fondo de la escena para que tenga transparencia. Luego se verán las vistas detrás de SKView.
UIView *parentView = ...;
[parentView addSubview:backgroundView];
[parentView addSubview:skViewWithScene];
skViewWithScene.allowsTransparency = YES;
scene.backgroundColor = [UIColor clearColor];
[skViewWithScene presentScene:scene];
La transparencia funciona solo para iOS 8, tiene que comprobar si hay iOS 7
En ViewController establece la transparencia como:
SKView *skView = (SKView *)self.mySKView;
SKScene *skScene = [MyScene sceneWithSize:skView.bounds.size];
skScene.scaleMode = SKSceneScaleModeAspectFill;
skView.allowsTransparency = YES;
[skView presentScene: skScene];
En MyScene.m, establece el fondo como color claro:
self.scene.backgroundColor = [UIColor clearColor];
No puedes hacer que la escena sea transparente. En todo caso, querrás que la vista sea transparente.
Sin embargo, no puede tener dos escenas ejecutándose al mismo tiempo (solo haciendo la transición entre ellas), y aunque puede agregar múltiples SKView a una página de Guiones gráficos, solo una de las vistas se actualizará a toda velocidad, y otras congelarán o cambiarán el contenido cada un par de segundos.
veloz 3
@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
}
}