Animation Cocos2D-当我设置第二个精灵的动画时,第一个精灵停止设置动画
所以这里的问题是,当我创建一个动画投射物时,一切都很好。一旦用户创建第二个,第一个将停止动画 好的,下面是我如何在init中设置它的:Animation Cocos2D-当我设置第二个精灵的动画时,第一个精灵停止设置动画,animation,cocos2d-iphone,ccsprite,sprite-sheet,Animation,Cocos2d Iphone,Ccsprite,Sprite Sheet,所以这里的问题是,当我创建一个动画投射物时,一切都很好。一旦用户创建第二个,第一个将停止动画 好的,下面是我如何在init中设置它的: [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile: @"acorns.plist"]; CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:
@"acorns.plist"];
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode
batchNodeWithFile:@"acorns.png"];
[self addChild:spriteSheet];
NSMutableArray *flyingFrames = [NSMutableArray array];
for(int i = 1; i <= 4; ++i) {
[flyingFrames addObject:
[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:
[NSString stringWithFormat:@"acorn%d.png", i]]];
}
CCAnimation *flying = [CCAnimation
animationWithFrames:flyingFrames delay:0.5f];
self.flying = [CCRepeatForever actionWithAction:
[CCAnimate actionWithAnimation:flying restoreOriginalFrame:NO]];
因此,用户第一次点击时,一切正常。第二次,创建了一个已设置动画的项目符号,但现有项目符号停止设置动画,依此类推。我认为每个精灵都应该有自己的动作,即在动作进行时不能重用动作。比如:
CCSprite *bullet = [CCSprite spriteWithSpriteFrameName:@"acorn1.png"];
bullet.position = CGPointMake(140.0f, FLOOR_HEIGHT+145.0f);
id _fly=[CCAnimation animationWithFrames:flyingFrames delay:0.5f];
id _flyForever = [[CCRepeatForever _fly];
[bullet runAction:_flyForever];
[self addChild:bullet z:9];
[bullets addObject:buller];
飞帧可以由多个动画引用,因此必须注意保留阵列以供重用
CCSprite *bullet = [CCSprite spriteWithSpriteFrameName:@"acorn1.png"];
bullet.position = CGPointMake(140.0f, FLOOR_HEIGHT+145.0f);
id _fly=[CCAnimation animationWithFrames:flyingFrames delay:0.5f];
id _flyForever = [[CCRepeatForever _fly];
[bullet runAction:_flyForever];
[self addChild:bullet z:9];
[bullets addObject:buller];