Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

CCFadeOut, CCFadeIn e CCFadeTo

Applicare una dissolvenza agli oggetti
Applicare una dissolvenza agli oggetti
Link copiato negli appunti

L'azione CCFadeOut permette di applicare una dissolvenza ad un oggetto che sia conforme al protocollo CCRGBAProtocol. Siccome CCSprite implementa questo protocollo allora i 2 oggetti che abbiamo creato (Ball e Monkey) ereditano il supporto a questo tipo di azione.

Vediamo come usarla. Aggiungete il seguente metodo a Monkey.m.

- (void)fadeOut
{
	CCFadeOut * fadeOut = [CCFadeOut actionWithDuration:2.0];
	[self runAction:fadeOut];
}

Inoltre modificate il metodo ccTouchBegan:withEvent di HelloWorldLayer.m come mostrato di seguito.

- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
	CCSprite * sprite = [self findSpriteFromTouch:touch];
	if (sprite) {
		if ([sprite isKindOfClass:Ball.class]) {
			Ball * ball = (Ball*) sprite;
			[ball increaseWidth];
		} else if ([sprite isKindOfClass:Monkey.class]) {
			Monkey * monkey = (Monkey*)sprite;
//			[monkey blink];
			[monkey fadeOut];
		}
	}
	return YES;
}

CMD + R per provare l'effetto che dovrebbe essere eseguito quando l'oggetto di tipo Monkey riceve un tocco.

Più precisamente quest'azione modifica l'opacità dell'oggetto da 255 a 0. Questo significa che indipendentemente dal valore di opacità iniziale, quando viene eseguita imposta l'opacità a 255 (massima visibilità) e poi la porta progressivamente a 0.

Ve ne potete rendere conto toccando una volta l'oggetto di tipo Monkey, subito questo inizierà a scomparire. Se poi lo toccate nuovamente (benché nascosto si trova sempre nella stessa posizione) lo vedrete istantaneamente tornare pienamente visibile per poi scomparire ancora progressivamente.

L'azione CCFadeIn è speculare alla precedente, infatti trasforma l'opacità dell'oggetto da 0 a 255.

Per approfondire possiamo leggere La documentazione di CCFadeOut
e CCFadeIn

Infine l'azione CCFadeTo permette modifica l'opacità di un oggetto verso un valore specifico che dovete indicare.

CCFadeTo * fadeTo = [CCFadeTo actionWithDuration:1.0 opacity:150];

Il parametro opacity accetta valori compresi tra 0 e 255.

La documentazione di CCFadeTo è disponibile qui

Ti consigliamo anche