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];