在 SKSpriteNode 上的两个不同 SKTexture 之间淡入淡出
Posted
技术标签:
【中文标题】在 SKSpriteNode 上的两个不同 SKTexture 之间淡入淡出【英文标题】:Fade between two different SKTextures on SKSpriteNode 【发布时间】:2014-04-11 08:38:12 【问题描述】:有谁知道在SKSpriteNode
上的两个不同SKTexture
s 之间是否有办法淡化(随着时间的推移)。我假设您不能直接执行此操作并计划使用具有更高 ZPosition
的重复子精灵来实现淡入淡出,但我只是想检查是否有使用 SKAction
(s) 的方法我看多了。
【问题讨论】:
是的,使用两个精灵并交叉淡化它们 【参考方案1】:下面的代码应该解决这个问题,假设新纹理适合旧纹理(它不会淡出 先前的纹理,而只是淡入 in新的在上面)。我省略了一些次要的实现细节,例如计时模式。
-(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;
【讨论】:
以上是关于在 SKSpriteNode 上的两个不同 SKTexture 之间淡入淡出的主要内容,如果未能解决你的问题,请参考以下文章
RNG vs EDG | SKT vs KTB [20160826]