1
我想为sprite工具包创建一个应用的原型,并且对于我现在能够以编程方式绘制我需要的sprite,然后再制作实际的sprite,对我来说是有利的。我做了一个粗略的循环,当我使用renderInContext转换为UIImage(或CGImage)时,它显示在具有黑色背景的sprite视图上,显然忽略了alpha通道。如果我将UIImage作为UIImageView添加到常规视图,则Alpha通道将正确呈现。我想知道我做错了什么,或者如果这是一个解决方法。以alpha通道为精灵套件以图形方式绘制精灵图形?
float rockSize = 100;
UIView* drawingView = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,100)];
drawingView.backgroundColor = [UIColor clearColor];
CALayer* circleLayer = [CALayer layer];
circleLayer.frame = CGRectMake(0,0,rockSize,rockSize);
circleLayer.backgroundColor = [Utils getTiledColorFromColor:[UIColor purpleColor]].CGColor;
circleLayer.cornerRadius = rockSize/2.0;
circleLayer.masksToBounds = YES;
[drawingView.layer addSublayer:circleLayer];
UIGraphicsBeginImageContextWithOptions(CGSizeMake(rockSize, rockSize), NO, [UIScreen mainScreen].scale);
CGContextSetFillColorWithColor(UIGraphicsGetCurrentContext(), [UIColor clearColor].CGColor);
CGContextFillRect(UIGraphicsGetCurrentContext(), CGRectMake(0,0,rockSize,rockSize));
[drawingView.layer renderInContext: UIGraphicsGetCurrentContext()];
UIImage *layerImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
SKSpriteNode *rockNode = [SKSpriteNode spriteNodeWithTexture:[SKTexture textureWithImage:layerImage]];
CGPoint position = CGPointMake(200,100);
rockNode.position = position;
[self addChild:rockNode];
我还没有使用sprite-kit,但它看起来像sprite视图有不透明的背景设置为YES的不透明属性。 – yurish
这样做,谢谢!如果您将其添加为答案,我会将其标记为已接受。 – DivideByZer0