【问题标题】:SKColor clearColor returning a black color instead?SKColor clearColor 返回黑色?
【发布时间】:2013-11-05 01:01:20
【问题描述】:

我在启动过程中通过以下方式设置了我的SKScene

-(id)initWithSize:(CGSize)size {
    if (self = [super initWithSize:size]) {


        self.backgroundColor = [SKColor clearColor];

    }
    return self;
}

但不知何故,我得到的是以下内容,它是黑色的,根本不清楚:

我在这里缺少什么?我怎样才能使这个场景清晰?我已经把持有场景的视图清晰了,但这仍然是我得到的。

更新:我也尝试设置myView.opaque = NO;,但这根本没有帮助。

【问题讨论】:

标签: ios objective-c uiview ios7 sprite-kit


【解决方案1】:

iOS 8 支持透明度:

skView.allowsTransparency = YES;

【讨论】:

  • 我将它作为运行时属性放置在 Interface builder 中,它允许透明的 SKView 实际上对于 iOS 模拟器是透明的。谢谢!
【解决方案2】:

将其设置为清除工作正常,导致没有颜色,所以黑色。

通过设置为您喜欢的任何颜色

self.backgroundColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0];

【讨论】:

  • 我需要透明度,这是使用clearColor@smick时的典型结果
  • 我尝试过这样做,但我的图像被拉长了,请参阅stackoverflow.com/questions/19780638/…
  • 也许改变这个 [self.scene setScaleMode:SKSceneScaleModeAspectFill];
  • SKView 不能透明。您可以让场景背景显示的清晰精灵,但不能通过场景背景显示其他视图。
  • 这可能表明 SK 帧缓冲区是作为没有 alpha 通道的 16 位 RGB565 帧缓冲区创建的,这意味着渲染到 SKView 上的所有像素都不能是透明的。与 cocos2d 相同,对于透明的 cocos2d 视图,需要将帧缓冲区创建为 RGBA8888(速度明显较慢)。
【解决方案3】:

在尝试了很多事情之后,这对我有用

skView.allowsTransparency = true
skView.backgroundColor = UIColor.clear
view.addSubview(skView)
floatingCollectionScene = BubblesScene(size: skView.bounds.size)
floatingCollectionScene.backgroundColor = UIColor.clear
floatingCollectionScene.scaleMode = .resizeFill
skView.presentScene(floatingCollectionScene)

【讨论】:

    猜你喜欢
    • 2016-11-25
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多