Как проверить вращение спрайтов в cocos2d

Я хочу остановить действие, как только мой спрайт достигнет определенного поворота. Например:

CCAction *rotateUp = [CCRotateTo actionWithDuration:0.3 angle:-35];
[player runAction:rotateUp];

if (player.rotation == -35) {
    [player stopAction:rotateUp];
    [player runAction:[CCRotateTo actionWithDuration:0.5 angle:65]];
}

Как только игрок достигает максимального вращения, я хочу, чтобы он запускал другое действие. Но это не работает. Что я могу сделать вместо этого?


person ErikOhlin12    schedule 26.03.2014    source источник


Ответы (1)


Вы не можете получить вывод Action немедленно. Так что хорошо дать обратный вызов завершения для этого.

напр. (в С++)

   CCAction *rotateUp = CCRotateTo::create(0.3f, -35f);
   CCCallFuncN *pCall = CCCallFuncN::create(callfunc_selector(<#_SELECTOR#>));

  player->runAction(CCSequence::create(rotateUp, pCall, NULL));

Здесь указанный SELECTOR вызывается, когда действие поворота завершено. Просто конвертируйте его в Obj C и попробуйте.

person Alok Rao    schedule 26.03.2014
comment
@ ErikOhlin12 Пожалуйста, примите ответ, если он сработал для вас. - person Abhineet Prasad; 27.03.2014