所以這裏是SKTexture/SKSpriteNode解決方案。它可能會被包裝在它自己的類中以便於使用。而且有一點要記住,就是要使得這種地方self.view不是零...
SKLabelNode *labNode = [SKLabelNode labelNodeWithFontNamed:FONT_GAME];
labNode.fontSize = 30.0f;
labNode.fontColor = [SKColor whiteColor];
labNode.text = @"TEST";
SKTexture *texture;
NSAssert(self.view != nil, @"Can't access self.view so sorry.");
texture = [self.view textureFromNode:labNode];
DLog(@"texture: %@", texture);
if (texture != nil) {
texture.filteringMode = SKTextureFilteringNearest;
SKSpriteNode *spriteText = [SKSpriteNode spriteNodeWithTexture:texture];
DLog(@"spriteText.size: %@", NSStringFromSize(spriteText.size));
spriteText.anchorPoint = ccp(0, 0.5);
spriteText.position = ccp(0, 25);
[self addChild:spriteText];
[spriteText runAction:[SKAction repeatActionForever:[SKAction sequence:@[
[SKAction colorizeWithColor:SKColor.yellowColor colorBlendFactor:1 duration:1],
[SKAction colorizeWithColor:SKColor.yellowColor colorBlendFactor:0 duration:1],
]]]];
}
else {
DLog(@"Texture is nil!");
}
我重新使用了它,非常感謝。 –
我很高興你發現它很有用。其實我找到了一個更好的解決方案。我在標籤更改時創建SKTexture,然後從該紋理創建sprite節點,這允許我在這個新的spritenode上使用colorizeWithColor操作,並在其上添加文本。我正在展示spritenode而不是labelnode。此方法佔用較少的cpu。 – GuessGen