Quando ho impostato un trasmettitore posso fare questo:Modifica delle proprietà CAEmitterCell di CAEmitterLayer dopo l'emissione inizia
self.cell = [CAEmitterCell emitterCell];
self.cell.yAcceleration = 20;
...
self.emitter.emitterCells = [NSArray arrayWithObjects:self.cell,nil];
Ma dire Creo un timer che spara 5 secondi dopo, e faccio questo:
- (void)timerFired
{
self.cell.yAcceleration = -10;
}
Il timer scatta, ma la yAccelerazione di CAEmitterCell non viene modificata. O almeno nulla cambia nell'emissione di particelle sullo schermo. Come posso ottenere un CAEmitterCell per rispettare le modifiche apportate alle sue proprietà?
Sono confuso. Dove va la riga [self.cell setName: @ "cell"] e dove si fa riferimento in precedenza? Intendi dire che dovrebbe essere [self.cell setName: @ "NAME"]; e quindi [self.emitter setValue: ... forKeyPath: @ "emitterCells.NAME.yAcceleration"]; La risposta come è scritta mi confonde perché la cella è un termine così generico che mi chiedo se stai modificando il percorso chiave? – Cindeselia
@Cindeselia la parte successiva è solo per chiarire che il nome della cella nel loro caso era cellulare. Se tu avessi assegnato il tuo nome "pippo", il keyPath sarebbe "emitterCells.foo.yAcceleration". – Warpling