3

本当にうまく機能する CAGradientLayer を作成しました。しかし、私の問題は、SpriteKit で背景として使用したいということです...

それを実現する可能性はありますか?多分それを SKSpriteNode に入れて?

前もって感謝します

編集:

残念ながら、エラーメッセージがあります:

5 月 28 日 19:08:19 amirs-mbp Gradient[2845]: CGContextSaveGState: 無効なコンテキスト 0x0。これは重大なエラーです。このアプリケーション、またはアプリケーションが使用するライブラリは無効なコンテキストを使用しているため、システムの安定性と信頼性が全体的に低下しています。この通知は厚意によるものです。この問題を修正してください。今後のアップデートで致命的なエラーになります。5 月 28 日 19:08:19 amirs-mbp Gradient[2845]: CGContextSaveGState: 無効なコンテキスト 0x0。これは重大なエラーです。このアプリケーション、またはアプリケーションが使用するライブラリは無効なコンテキストを使用しているため、システムの安定性と信頼性が全体的に低下しています。この通知は厚意によるものです。この問題を修正してください。今後のアップデートで致命的なエラーになります。5 月 28 日 19:08:19 amirs-mbp Gradient[2845]: CGContextClipToRect: 無効なコンテキスト 0x0。これは重大なエラーです。このアプリケーション、またはアプリケーションが使用するライブラリは無効なコンテキストを使用しているため、システムの安定性と信頼性が全体的に低下しています。この通知は厚意によるものです。この問題を修正してください。今後のアップデートで致命的なエラーになります。5 月 28 日 19:08:19 amirs-mbp Gradient[2845]: CGContextTranslateCTM: 無効なコンテキスト 0x0。これは重大なエラーです。このアプリケーション、またはアプリケーションが使用するライブラリは無効なコンテキストを使用しているため、システムの安定性と信頼性が全体的に低下しています。この通知は厚意によるものです。この問題を修正してください。今後のアップデートで致命的なエラーになります。5 月 28 日 19:08:19 amirs-mbp Gradient[2845]: CGContextScaleCTM: 無効なコンテキスト 0x0。これは重大なエラーです。このアプリケーション、またはそれが使用するライブラリ、無効なコンテキストを使用しているため、システムの安定性と信頼性が全体的に低下しています。この通知は厚意によるものです。この問題を修正してください。今後のアップデートで致命的なエラーになります。5 月 28 日 19:08:19 amirs-mbp Gradient[2845]: CGContextDrawLinearGradient: 無効なコンテキスト 0x0。これは重大なエラーです。このアプリケーション、またはアプリケーションが使用するライブラリは無効なコンテキストを使用しているため、システムの安定性と信頼性が全体的に低下しています。この通知は厚意によるものです。この問題を修正してください。今後のアップデートで致命的なエラーになります。5 月 28 日 19:08:19 amirs-mbp Gradient[2845]: CGContextRestoreGState: 無効なコンテキスト 0x0。これは重大なエラーです。このアプリケーション、またはそれが使用するライブラリ、無効なコンテキストを使用しているため、システムの安定性と信頼性が全体的に低下しています。この通知は厚意によるものです。この問題を修正してください。今後のアップデートで致命的なエラーになります。5 月 28 日 19:08:19 amirs-mbp Gradient[2845]: CGContextRestoreGState: 無効なコンテキスト 0x0。これは重大なエラーです。このアプリケーション、またはアプリケーションが使用するライブラリは無効なコンテキストを使用しているため、システムの安定性と信頼性が全体的に低下しています。この通知は厚意によるものです。この問題を修正してください。今後のアップデートで致命的なエラーになります。または使用するライブラリが無効なコンテキストを使用しているため、システムの安定性と信頼性が全体的に低下しています。この通知は厚意によるものです。この問題を修正してください。今後のアップデートで致命的なエラーになります。または使用するライブラリが無効なコンテキストを使用しているため、システムの安定性と信頼性が全体的に低下しています。この通知は厚意によるものです。この問題を修正してください。今後のアップデートで致命的なエラーになります。

4

3 に答える 3

1

最初にレイヤーを 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]
于 2014-05-28T16:46:01.177 に答える