1
有谁知道是否有一种方法可以在SKSpriteNode
上的两个不同的SKTexture
之间淡入(随着时间的推移)。我假设你不能直接这样做,并计划使用重复的孩子精灵具有较高ZPosition
实现淡入淡出,但我只是想确认有没有使用一些方法SKAction
(S),我已经看了以上。SKSpriteNode上的两个不同SKTextures之间的淡入淡出
有谁知道是否有一种方法可以在SKSpriteNode
上的两个不同的SKTexture
之间淡入(随着时间的推移)。我假设你不能直接这样做,并计划使用重复的孩子精灵具有较高ZPosition
实现淡入淡出,但我只是想确认有没有使用一些方法SKAction
(S),我已经看了以上。SKSpriteNode上的两个不同SKTextures之间的淡入淡出
下面的代码应该解决这个问题,假设新的纹理适合凌驾旧的(它不褪色出以前的质感,但只是在淡化对顶部的新)。我省略了一些次要的实现细节,如定时模式。
-(void) fadeTexture:(SKTexture *)newTexture ontoSpriteNode:(SKSpriteNode *)referenceSpriteNode withDuration:(CFTimeInterval)duration {
SKSpriteNode * fadeInSprite = [self fadeInSpriteWithTexture:newTexture referenceSpriteNode:referenceSpriteNode];
[[referenceSpriteNode parent] addChild:fadeInSprite];
[fadeInSprite runAction:[SKAction sequence:@[
[SKAction fadeAlphaTo:1 duration:duration],
[SKAction runBlock:^{
[fadeInSprite removeFromParent];
[referenceSpriteNode setTexture:newTexture];
}]
]]];
}
-(SKSpriteNode *) fadeInSpriteWithTexture:(SKTexture *)newTexture referenceSpriteNode:(SKSpriteNode *)referenceSpriteNode {
SKSpriteNode * fadeInSprite = [SKSpriteNode spriteNodeWithTexture:newTexture size:[referenceSpriteNode size]];
[fadeInSprite setAlpha:0];
[fadeInSprite setAnchorPoint:[referenceSpriteNode anchorPoint]];
[fadeInSprite setPosition:[referenceSpriteNode position]];
return fadeInSprite;
}
烨,使用两个精灵和淡入淡出他们 – LearnCocos2D