Cocos2D: повторно использовать анимацию для разных спрайтов - PullRequest
0 голосов
/ 14 сентября 2011

В настоящее время у меня есть ряд спрайтов (cardA, cardB, cardC) и ряд действий (flipCardA, flipCardB, flipCardC), которые я инициализирую в методе init.

Я хочу избавиться от 2 ненужных действий и просто иметь одно действие flipCard, но не могу понять и ничего не могу найти: «Как я могу применить одно и то же действие к разным спрайтам».

тест, который я имею (который применяет действие только к третьей карте):

[self.cardA runAction:self.flipCard];
[self.cardB runAction:self.flipCard];
[self.cardC runAction:self.flipCard];

поэтому мне нужно использовать что-то подобное:

[self.cardA runAction:self.flipCardA];
[self.cardB runAction:self.flipCardB];
[self.cardC runAction:self.flipCardC];

Спасибо.

1 Ответ

1 голос
/ 14 сентября 2011

Вы не можете использовать один CCAction для нескольких CCSprites одновременно. runAction устанавливает целевое свойство CCAction для объекта класса, из которого вызывается runAction, переопределяя любое предыдущее значение target.

Вы можете сделать [self.flipCard copy] или продолжать делать то же, что и вы. Или, что еще лучше, содержите конструкцию и выполнение анимации с переворотом в методе класса вашей карты - скажем, [self.cardA flipCard] - и затем вызовите его. Теперь вам не нужно беспокоиться о сохранении явных копий флип-анимации.

Стоимость воссоздания анимации каждый раз незначительна, но вы можете хранить CCSequence, которую вы создаете, в переменной класса для многократного использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...