Wie würde man eine benutzerdefinierte Aktion in Cocos2D erstellen, die in der Lage war, einen "Callback" im Laufe der Zeit durchzuführen, so dass jeder Call zum Callback progressiv länger als der letzte Aufruf (mit etwas) ähnlich dem EaseExponentialOut Aktion bereits mit Cocos2D versehenBenutzerdefinierte Lockerungsaktion mit Cocos2D-iphone
Etwas ähnliches wie folgt aus:.
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]];
der obige Code die gesamte ‚Sequenz‘ ausführt Spiel ausführt (die nicht funktioniert), 18 mal und dann die‘ 'Rückruf am Ende der letzten Sequenz.
Allerdings scheint EaseExponentialOut überhaupt keine Auswirkungen auf die 'repeat' Aktion zu haben, die erstellt wurde - ich hatte erwartet, dass es die Dauer der 'DelayTime'-Aktion innerhalb der' Sequenz'-Aktion anpassen würde, aber das tut es scheint dies nicht zu tun.
Ich habe auch versucht, meine eigene benutzerdefinierte Aktion basierend auf IntervalAction zu erstellen, aber kläglich gescheitert.
Fehlt hier etwas? Würde der SpinTick-Callback die SpinnerAction verwenden? Es scheint nicht, als würde irgendeine Animation verwendet werden. So wie ich es sehe, haben Sie eine wiederholte Folge von SpinTick-Callbacks mit einer erwarteten easeexponentialout-Dauer. Spinner ist im Beispielcode nicht referenziert ... –
SpinnerAction wurde an der Unterseite hinzugefügt, vergaß es einzuschließen. –
nach dem Blick auf die Dinge wieder, 'Spinner' wird nie wirklich in dem oben genannten Code verwendet - es ist nur eine Instanz meiner fehlgeschlagenen SpinnerAction Versuch (die unter dem Post nachträglich hinzugefügt wurde) –