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