Я все еще не совсем уверен, полностью ли понимаю, что вы пытаетесь сделать, но я могу помочь вам в этом. Если вы хотите, чтобы запустить проверку каждый кадр вы должны сделать somethng как этот
В конце вашей сцены инициализации метод надстройки:
`[само расписание: @selector (тик :) интервал: 0.3f];
- (пустоты), отметьте: (ccTime) дт { если (CGRectIntersectsRect (goalKeeper.textureRect, ball.textureRect) { [GoalKeeper stopAction: MyAction]; //, где MyAction предварительно определен } // теперь вы можете запустить новое действие, потому что вы используете таймер, это будет тот же фрейм.
Это должно сделать это. Надеюсь, что это поможет, если я все еще не совсем отвечаю на ваш вопрос, не стесняйтесь чтобы уточнить, что более яркое, что именно вы собираетесь делать. `
Позвольте мне пояснить немного больше, здесь, в «myAction», скажем, у меня 100 кадров анимации. У меня также есть «newAction», который также имеет 100 кадров. когда происходит столкновение, как в вашем примере. Я хотел бы остановить «myAction» (предположим, что он находится на 20-м кадре) и запустить «newAction», но проблема в том, что «newAction» должен начинаться с 20-го кадра. –
Охххх! Таким образом, в основном то, что вы пытаетесь сделать, это завершить оставшуюся часть анимации, когда он держит мяч. Я сейчас с тобой, я думаю, что у меня идеальное решение, но ты никогда не говорил мне, если это спрайт, который ты используешь. – pob21
Фактически я использую [CCSpriteFrameCache addSpriteFramesWithFile]. –