Dies wird die gesamte Szene erfassen:
CGRect bounds = self.scene.view.bounds;
UIGraphicsBeginImageContextWithOptions(bounds.size, NO, [UIScreen mainScreen].scale);
[self drawViewHierarchyInRect:bounds afterScreenUpdates:YES];
UIImage* screenshotImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Wenn Sie nur einen bestimmten Knoten Zweig möchten Sie alle Knoten verstecken können Sie vor der Einnahme den Screenshot aufnehmen möchten nicht. Sie können auch den akkumulierten Rahmen verwenden, der in UIKit
Koordinaten konvertiert wurde, um nur den Bereich des Knotens und seiner untergeordneten Elemente zu erfassen.
Alternativ können Sie auch ein SKTexture
von einem bestimmten Teil der Knotenhierarchie erhalten:
SKTexture* tex = [self.scene.view textureFromNode:yourNode];
Vor iOS 9, gibt es nicht Art und Weise war ein SKTexture
zurück zu einem UIImage
zu konvertieren. Jetzt ist es jedoch trivial:
UIImage *image = [UIImage imageWithCGImage:tex.CGImage];
Vielen Dank. Die Ergebnisse sollten wieder im Sprite Kit verwendet werden - also TexturFromNode: hat wunderbar funktioniert. Prost! –
@ learncocos2d ist dies immer noch der beste Weg, dies zu tun? –
@StevenRitchie Leider Ja. – ColdSteel