SpriteKit存在问题。我有.png
这是我的角色的投影,是SKSpriteNode
图片。当我将模式设置为SKBlendModeMultiply
时,它会将图像中的alpha视为黑色,从而使整个图像成为黑色方块。
有谁知道如何解决这个问题?当你也在SKEmitterNode
到SKBlendNodeMultiply
中设置粒子时,它甚至会发生。
答案 0 :(得分:1)
你遇到的问题是你没有使用正确的混合模式,如果你使用内置alpha的图像(如下面的Apple太空飞船或我的UFO)你不需要指定混合模式作为[sprite setBlendMode:SKBlendModeAlpha];
的默认值对于具有嵌入式alpha的图像是正确的。
使用图片
尝试删除行[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 强>