SK混合模式与PN的PNG图像相乘

时间:2014-05-10 20:16:46

标签: objective-c sprite-kit

SpriteKit存在问题。我有.png这是我的角色的投影,是SKSpriteNode图片。当我将模式设置为SKBlendModeMultiply时,它会将图像中的alpha视为黑色,从而使整个图像成为黑色方块。

有谁知道如何解决这个问题?当你也在SKEmitterNodeSKBlendNodeMultiply中设置粒子时,它甚至会发生。

1 个答案:

答案 0 :(得分:1)

你遇到的问题是你没有使用正确的混合模式,如果你使用内置alpha的图像(如下面的Apple太空飞船或我的UFO)你不需要指定混合模式作为[sprite setBlendMode:SKBlendModeAlpha];的默认值对于具有嵌入式alpha的图像是正确的。

使用图片

Image used

尝试删除行[sprite setBlendMode:SKBlendModeMultiply];在你的代码中,或用[sprite setBlendMode:SKBlendModeAlpha]替换它;得到正确的结果。这是我使用的代码,

使用代码

-(id)initWithSize:(CGSize)size {    
    if (self = [super initWithSize:size]) {
        self.backgroundColor = [SKColor redColor];
    }
    return self;
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    for (UITouch *touch in touches) {
        CGPoint location = [touch locationInNode:self];
        SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"TEST_0001"];
        //[sprite setBlendMode:SKBlendModeAlpha]; // Default value

        sprite.position = location;
        SKAction *action = [SKAction rotateByAngle:M_PI duration:1];
        [sprite runAction:[SKAction repeatActionForever:action]];
        [self addChild:sprite];
    }
}

和来自模拟器的屏幕渐变显示comp。

<强> SIMULATOR

Output on simulator