Wenn Sie SKNode/SKSpriteNode mit einem Anti-Aliasing-Effekt verschleiern wollen - können Sie SKEffectNode statt SKCropNode verwenden. Es funktioniert auch mit animierten Knoten. Hier ist ein Beispiel:
// Set up your node
SKNode *nodeToMask = [SKNode node];
// ...
// Set up the mask node
SKEffectNode *maskNode = [SKEffectNode node];
// Create a filter
CIImage *maskImage = [[CIImage alloc] initWithCGImage:[UIImage imageNamed:@"your_mask_image"].CGImage];
CIFilter *maskFilter = [CIFilter filterWithName:@"CISourceInCompositing"
keysAndValues:@"inputBackgroundImage", maskImage, nil];
// Set the filter
maskNode.filter = maskFilter;
// Add childs
[maskNode addChild:nodeToMask];
[scene addChild:maskNode];
könnten Sie den Code teilen, den Sie verwendet haben, um die Maske zu erreichen? – ZeMoon
wird nur auf dem Simulator pixelig oder das Gerät auch ?? –
Laut Specs wird es definitiv gezackte Kanten haben, da der SKCropNode einen booleschen (0 oder 1) Alpha-Wert und keinen Byte-Wert (zB 0 bis 255) verwendet. –