¿Cómo se puede crear una acción personalizada en Cocos2D que fue capaz de realizar una 'devolución de llamada' en el tiempo, haciendo que cada llamada a la devolución de llamada progresivamente más larga que la última llamada (usando algo similar a la acción EaseExponentialOut ya proporcionada con Cocos2DAcción de suavizado personalizada con Cocos2D-iphone
Algo similar a esto:. (que no funciona)
id sequence = [Sequence actions: [CallFunc actionWithTarget: self selector: @selector(spinTick)], [DelayTime actionWithDuration: 0.034f], nil];
id repeat = [Repeat actionWithAction: [sequence copy] times: 18];
id ease = [EaseExponentialOut actionWithAction: [repeat copy]];
[ease setDuration:4];
id play = [CallFunc actionWithTarget:self selector:@selector(play)];
[self runAction: [Sequence actions: [ease copy], [play copy], nil]];
el código anterior se ejecuta toda la 'secuencia', 18 veces y luego ejecuta el 'juego 'devolución de llamada al final de la última secuencia.
Sin embargo, el EaseExponentialOut no parece tener ningún efecto en la acción 'repeat' que se crea - Esperaba que ajustara la duración de la acción 'DelayTime' dentro de la acción 'sequence', pero lo hace no parece hacer esto
También intenté crear mi propia acción personalizada basada en IntervalAction, pero fallé miserablemente.
¿Falta algo aquí? ¿La devolución de llamada spinTick usaría SpinnerAction? No parece que haya animación en uso. De la forma en que lo veo, tienes una secuencia repetida de devoluciones de llamada spinTick con una duración esperada de easeexponentialout. No se hace referencia a Spinner en el código de muestra ... –
SpinnerAction se agregó a la parte inferior, se olvidó de incluirlo. –
después de mirar las cosas de nuevo, 'spinner' nunca se usa realmente en el código anterior; es solo una instancia de mi intento fallido de SpinnerAction (que se agregó debajo de la publicación después del hecho) –