2013-02-12 49 views
4

我正在玩CAEmitterCell,但大多數效果都非常快,就像煙花一樣。 但我想有一個像你在這裏看到的緩慢的「星星」效果www.findyourwaytooz.comCAEmitterCell - 緩慢的星星或燈光效果

我該怎麼用CAEmitterCell做到這一點?

謝謝:)

+0

我以前實際上已經這樣做過。給我一些時間,我可以在GitHub上發帖,除非你有特定的速度問題等等。 – jhilgert00 2013-02-12 18:22:38

回答

5

我有一個使用以下設置爲發射一個項目,它非常精確地模仿什麼,我認爲你的意思是:

//set ref to the layer 
starsEmitter = (CAEmitterLayer*)self.layer; //2 

//configure the emitter layer 
starsEmitter.emitterPosition = CGPointMake(160, 240); 
starsEmitter.emitterSize = CGSizeMake(self.superview.bounds.size.width,self.superview.bounds.size.height); 
NSLog(@"width = %f, height = %f", starsEmitter.emitterSize.width, starsEmitter.emitterSize.height); 
starsEmitter.renderMode = kCAEmitterLayerPoints; 
starsEmitter.emitterShape = kCAEmitterLayerRectangle; 
starsEmitter.emitterMode = kCAEmitterLayerUnordered; 

CAEmitterCell* stars = [CAEmitterCell emitterCell]; 
stars.birthRate = 0; 
stars.lifetime = 10; 
stars.lifetimeRange = 0.5; 
stars.color = [[UIColor colorWithRed:255 green:255 blue:255 alpha:0] CGColor]; 
stars.contents = (id)[[UIImage imageNamed:@"particle.png"] CGImage]; 
stars.velocityRange = 500; 
stars.emissionRange = 360; 
stars.scale = 0.2; 
stars.scaleRange = 0.1; 
stars.alphaRange = 0.3; 
stars.alphaSpeed = 0.5;  
[stars setName:@"stars"]; 

//add the cell to the layer and we're done 
starsEmitter.emitterCells = [NSArray arrayWithObject:stars]; 

我上傳的樣本項目的GitHub :SimpleCAEmitterLayer

+2

不錯的演示。 「particle.png」不復制到包(即丟失) - 用新圖形取代它工作正常 – 2013-02-12 23:59:14

+0

感謝skinnyTOD,我會確保它同步:) – jhilgert00 2013-02-13 00:01:42

+0

非常感謝 - 現在它更容易對我來說玩弄:)你讓我的一天 – cuSoon2013 2013-02-13 09:12:18