我試圖用一個SKEmitterNode創建着色器,有點像在寵物小精靈,當你在一個洞穴: http://www.serebii.net/pokearth/maps/johto-hgss/38-route31.png如何在Sprite工具包中使用SKEmitterNode來實現「戰爭迷霧」效果?
這裏是我的代碼至今:
NSString *burstPath =
[[NSBundle mainBundle] pathForResource:@"MyParticle" ofType:@"sks"];
SKNode *area = [[SKNode alloc] init];
SKSpriteNode *background = [SKSpriteNode spriteNodeWithColor:[SKColor blackColor] size:CGSizeMake(self.frame.size.width, self.frame.size.width)];
background.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
SKEmitterNode *burstNode =
[NSKeyedUnarchiver unarchiveObjectWithFile:burstPath];
burstNode.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame));
burstNode.particleBlendMode = SKBlendModeSubtract;
[area addChild:background];
[area addChild:burstNode];
[self addChild:area];
這裏是SKEmitterNode:http://postimg.org/image/60zflqjzt/
我有兩個想法。 第一個是創建一個矩形SKSpriteNode並從矩形SKSpriteNode中刪除SKEmitterNode。這樣,我們有一個黑色的矩形,在中心有一個「洞」,我們可以在那裏看到。
第二個是將矩形SKSpriteNode和SKEmitter節點添加到另一個SKNode(區域),然後設置SKEmitterNode的particleBlendMode,最後將SKNode(區域)的alpha設置爲顏色的函數。例如,如果像素的顏色爲黑色,那麼該像素的Alpha值將爲1.0,而另一個像素爲白色,則其他像素的Alpha值將爲0.0。
這個問題是在某些方面How to create an alpha mask in iOS using sprite kit可能重複的,但由於沒有很好的答案已經給出,我認爲這不是一個問題。
非常感謝。
你有什麼想法如何我可以添加圖像的火焰閃爍效果?而你的答案的缺點是,我必須在每次我想要一個不同的半徑時創建一個額外的圖像:/否則,這是一個好主意:) –
通過縮放戰霧精靈,可以實現不同的半徑。 – LearnCocos2D
任何想法的火炬/火焰閃爍? –