嘿 我正在使用cocos2d框架为iPhone编写游戏。
我有100个精灵,我想在它们上运行相同的动画。 我是否必须为每个精灵创建100个单独的动作,或者我可以创建一个动作并在每个精灵上使用它吗?
答案 0 :(得分:0)
我遵循的一个方法是从sprite类创建派生类,并在类初始化中分配动作。
例如我必须生成10-100个敌人精灵
我将使用CCSprite
创建一个类enemyActoor.mm他们保留了一项功能
+(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
当我需要生成这些敌人时,我创建了n NSMuTableArray enemyLoaded并将所有实例保留在此数组中....
当按照游戏应用各种寻路算法或规则时,我从这些数组中访问每个对象///
对不起英语不好但这是我发现到现在为止完成工作而不问任何人的最佳方式;)
答案 1 :(得分:0)
您始终可以使用id
进行一项操作,然后为您的精灵分配一个操作。喜欢这个
id myAction = [CCMoveBy actionWithDuration:0.2f position:myPoint];
id mySecondAction = [CCRotateBy actionWithDuration:0.2f angle:myAngle];
id actionSequence = [CCSequence actions: myAction, mySecondAction, nil];
然后浏览所有精灵并附上动作。如果你有一个数组我们使用for in
方法,因为它更快。
for (CCSprites mySprites in myArray) {
//attach actions to sprites code here
}