Как проверить вращение спрайтов в 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 и попробуйте.