我创建了一个CAGradientLayer,它工作得非常好。但我的问题是,我想在SpriteKit中使用它作为背景...
有没有可能实现它?也许可以把它放在SKSpriteNode里?
提前感谢
编辑:
不幸的是,有一条错误消息:
5月28日19:08:19 amirs mbp Gradient2845 : CGContextSaveGState:无效上下文0x0。这是一个严重的错误。此应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体降级。此通知是出于礼貌:请解决此问题。在即将到来的更新中,它将成为一个致命错误。5月28日19:08:19 amirs mbp Gradient2845 : CGContextSaveGState:无效上下文0x0。这是一个严重的错误。此应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体降级。此通知是出于礼貌:请解决此问题。在即将到来的更新中,它将成为一个致命错误。5月28日19:08:19 amirs mbp Gradient2845 : CGContextClipToRect:无效上下文0x0。这是一个严重的错误。此应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体降级。此通知是出于礼貌:请解决此问题。在即将到来的更新中,它将成为一个致命错误。5月28日19:08:19 amirs mbp Gradient2845 : CGContextTranslateCTM:无效上下文0x0。这是一个严重的错误。此应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体降级。此通知是出于礼貌:请解决此问题。在即将到来的更新中,它将成为一个致命错误。5月28日19:08:19 amirs mbp Gradient2845 : CGContextScaleCTM:无效上下文0x0。这是一个严重的错误。此应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体降级。此通知是出于礼貌:请解决此问题。在即将到来的更新中,它将成为一个致命错误。5月28日19:08:19 amirs mbp Gradient2845 : CGContextDrawLinearGradient:无效上下文0x0。这是一个严重的错误。此应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体降级。此通知是出于礼貌:请解决此问题。在即将到来的更新中,它将成为一个致命错误。5月28日19:08:19 amirs mbp Gradient2845 : CGContextRestoreGState:无效上下文0x0。这是一个严重的错误。此应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体降级。此通知是出于礼貌:请解决此问题。在即将到来的更新中,它将成为一个致命错误。5月28日19:08:19 amirs mbp Gradient2845 : CGContextRestoreGState:无效上下文0x0。这是一个严重的错误。此应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体降级。此通知是出于礼貌:请解决此问题。在即将到来的更新中,它将成为一个致命错误。
发布于 2015-04-05 14:35:02
发布于 2014-05-29 00:46:01
首先将图层转换为UIImage*
- (UIImage *)imageFromLayer:(CALayer *)layer
{
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions([layer frame].size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext([layer frame].size);
[layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return outputImage;
}然后用它初始化一个SKSpriteNode:
SKSpriteNode* node = [SKSpriteNode spriteNodeWithColor:[UIColor colorWithPatternImage:image]
size:yourLayer.bounds.size]发布于 2015-01-30 04:43:49
这个函数适用于我从CAGradientLayer创建SpriteNode。请注意,它是GameScene的一个函数,所以这是它引用的'self.frame‘上下文,以获得正确的渐变大小。
func layerToSKSpriteNode(layer : CALayer) -> SKSpriteNode
{
var view = UIView()
layer.frame = self.frame
view.layer.addSublayer(layer)
UIGraphicsBeginImageContext(self.frame.size)
view.layer.renderInContext(UIGraphicsGetCurrentContext())
var bgImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return SKSpriteNode(texture: SKTexture(image: bgImage))
} https://stackoverflow.com/questions/23917299
复制相似问题