Как проверить вращение спрайтов в 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]];
}

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

1 ответ

Решение

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

например (на с ++)

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

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

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

Другие вопросы по тегам