當我第一次設立了發射器,我可以做到這一點:發射後改變CAEmitterLayer的CAEmitterCell性出發
self.cell = [CAEmitterCell emitterCell];
self.cell.yAcceleration = 20;
...
self.emitter.emitterCells = [NSArray arrayWithObjects:self.cell,nil];
但說我創建了火災5秒後定時器,我這樣做:
- (void)timerFired
{
self.cell.yAcceleration = -10;
}
定時器會觸發,但CAEmitterCell的yAcceleration不會被更改。或者屏幕上的粒子發射至少沒有變化。我怎樣才能讓CAEmitterCell尊重我對其屬性所做的更改?
我很困惑。 [self.cell setName:@「cell」]行的位置在哪裏,以及上面引用了哪個位置?你的意思是說它應該是[self.cell setName:@「NAME」];然後[self.emitter setValue:... forKeyPath:@「emitterCells.NAME.yAcceleration」];答案寫的很混亂,因爲單元格是一個通用術語,我想知道你是否在修改關鍵路徑? – Cindeselia
@Cindeselia後面的部分只是爲了澄清在他們的案件的細胞名稱是細胞。如果你分配了你的名字「foo」,那麼keyPath就是「emitterCells.foo.yAcceleration」。 – Warpling