2010-10-03 3 views
1

Эй, Я пишу игру для iPhone с использованием рамки cocos2d.iPhone cocos2d - Используйте те же анимационные действия для многих спрайтов

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

ответ

0

Одним из методов, которым я следую, является то, что я создаю производный класс из класса спрайтов и назначаю действия в инициализации класса.

Например, я должен генерировать 10-100 вражеские спрайт

Я заставлю класс enemyActoor.mm, полученный из CCSprite

их я держу функцию

+(void)initwithParamters:(CCPoint)spwanPoint frames:(NSString *)plist{ 

mummyActor *tempInstance =[mummyActor spriteWithWatever suites ur reqirment]; 

//do all stuff here 
//load actions 

return tempInstance; 

} 
//other methods to call actions or access mutators 

, когда мне нужно для создания этих врагов я создаю nSMuTableArray enemyLoaded и сохраняю все экземпляры в этом массиве.

при применении различных алгоритмов поиска пути или правил как за игру я получить доступ к объектам, каждый из этих массива ///

К сожалению для бедных английский, но это лучший способ я нашел до сих пор, чтобы сделать работу, не спрашивая никого;)

+0

Хм. Я что-то узнаю. Я определил «действие», и я использую это действие для анимации моего спрайта. Но когда я хочу запустить еще одну анимацию в этом же спрайте, я получаю EXC_BAD_ACCESS. Но когда я использую «действие», а затем делаю так: «action = [Animation newAnim];», а затем запускайте этот спрайт, все работает отлично. Но я не хочу создавать новые действия во время игры, но в функции init, а затем запускаю ее. – msmialko

+1

Привет, я знаю, что этот вопрос немного стар, но у меня в настоящее время есть тот же вопрос, и я просто хотел проверить, понимаете ли вы это. –

0

Вы всегда можете сделать одно действие с помощью id, а затем присвойте своим спрайтам одно действие. Вроде так

Затем пройдите через все ваши спрайты и приложите действие. Если у вас есть массив, нам нужна методология for in, так как она быстрее.

for (CCSprites mySprites in myArray) { 
    //attach actions to sprites code here 

} 
Смежные вопросы