2010-11-09 2 views
1

У меня есть две анимации вратаря с двумя разными состояниями (с мячом и без мяча). После прыжков с помощью keeper я хочу переключиться на другое действие, но я хочу остановиться на одном индексе кадра.Как переключить анимацию sprite с cocos2d?

Я имею в виду, если вратарь столкнется с мячом в кадре 19, второе действие должно начаться и в кадре 19.

ответ

0

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

В конце вашей сцены инициализации метод надстройки:

`[само расписание: @selector (тик :) интервал: 0.3f];

- (пустоты), отметьте: (ccTime) дт { если (CGRectIntersectsRect (goalKeeper.textureRect, ball.textureRect) { [GoalKeeper stopAction: MyAction]; //, где MyAction предварительно определен } // теперь вы можете запустить новое действие, потому что вы используете таймер, это будет тот же фрейм.

Это должно сделать это. Надеюсь, что это поможет, если я все еще не совсем отвечаю на ваш вопрос, не стесняйтесь чтобы уточнить, что более яркое, что именно вы собираетесь делать. `

+0

Позвольте мне пояснить немного больше, здесь, в «myAction», скажем, у меня 100 кадров анимации. У меня также есть «newAction», который также имеет 100 кадров. когда происходит столкновение, как в вашем примере. Я хотел бы остановить «myAction» (предположим, что он находится на 20-м кадре) и запустить «newAction», но проблема в том, что «newAction» должен начинаться с 20-го кадра. –

+0

Охххх! Таким образом, в основном то, что вы пытаетесь сделать, это завершить оставшуюся часть анимации, когда он держит мяч. Я сейчас с тобой, я думаю, что у меня идеальное решение, но ты никогда не говорил мне, если это спрайт, который ты используешь. – pob21

+0

Фактически я использую [CCSpriteFrameCache addSpriteFramesWithFile]. –