Cocos2d Rocking Animation с помощью CCRotateBy?

Я новичок в Cocos2d и после некоторой помощи.

У меня есть спрайт, который я хочу повернуть на 45 градусов влево, снова центрироваться и затем повернуть на 45 градусов вправо. Вроде как раскачивание.

Я хочу, чтобы это было сделано, когда я касаюсь самого спрайта, а не где-нибудь на экране.

Как и сейчас, когда я касаюсь экрана, он поворачивается на 360 градусов (360 градусов для тестирования), но каждый раз, когда я касаюсь экрана, я получаю новый спрайт.

У меня вопрос один, как мне его настроить, чтобы, когда я дотронулся до спрайта, он выполнил раскачивающее движение, которое мне нужно? Без появления нового спрайта каждый раз, когда я нажимаю на экран.

1 ответ

Решение

Вы можете проверить, какой спрайт UITouch включен (проверяя, находится ли точка касания в прямоугольнике каждого спрайта) и запускает анимацию в ccTouchesBegan или же ccTouchesEnded согласно вашим требованиям Вы можете взглянуть на пример "TouchesTest", включенный в cocos2d.

Вы можете реализовать анимацию так:

CCAction *action = [CCSequence actions:
                    [CCRotateBy actionWithDuration:0.25 angle:-45],
                    [CCRotateBy actionWithDuration:0.5 angle:90],
                    [CCRotateBy actionWithDuration:0.25 angle:-45],
                    nil];
[theSprite runAction:action];
Другие вопросы по тегам