有谁知道是否有办法SKTexture
在SKSpriteNode
. 我假设您不能直接执行此操作并计划使用更高的重复子精灵ZPosition
来实现淡入淡出,但我只是想检查是否没有使用SKAction
我看过的(s)的某种方法。
问问题
1241 次
1 回答
2
下面的代码应该解决这个问题,假设新纹理适合旧纹理(它不会淡出先前的纹理,而只是淡入顶部的新纹理)。我省略了一些次要的实现细节,例如计时模式。
-(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;
}
于 2014-09-06T20:21:44.203 回答