佚名通过本文主要向大家介绍了ccsprite,ccspriteframe,ccspriteframecache,cocos2d x,cocos2d等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: cocos2d中多个CCSprite循环播放CCMoveBy动画的问题
描述:
解决方案1:
描述:
想做一个持续运动的效果。采用NSTimer
来计时触发动画:
```objective-c [NSTimer scheduledTimerWithTimeInterval:2.0f target:self selector:@selector(melonPush) userInfo:nil repeats:YES];
`melonPush`方法是这么写的:
```objective-c
- (void)melonPush
{
CCSprite *walnut = [walnutSprites lastObject];
if (walnut.position.x >= 470) {
return;
}
CCMoveBy *push = [CCMoveBy actionWithDuration:.1f position:ccp(10, 0)];
[melonSprite runAction:push];
for (int i = [walnutSprites count] - 1; i >= 0; i--) {
CCSprite *nut = [walnutSprites objectAtIndex:i];
[nut runAction:push];
}
}
但是在运行的时候,只有最后一个应用runAction
的对象才有动画,其它的对象都不动。这是怎么回事?
解决方案1:
每个action只能绑定到一个对象上面
解决方案2:找到问题了,CCMoveBy
对象要在每次应用动画之前都得创建一次,就像这样:
for (int i = [walnutSprites count] - 1; i >= 0; i--) {
CCMoveBy *push = [CCMoveBy actionWithDuration:.1f position:ccp(10, 0)];
CCSprite *nut = [walnutSprites objectAtIndex:i];
[nut runAction:push];
}