Cocos2d iphone cocos2dv3精灵动画问题

Cocos2d iphone cocos2dv3精灵动画问题,cocos2d-iphone,ccsprite,Cocos2d Iphone,Ccsprite,精灵动画问题 使用这个似乎适用于其他人的示例: 所以我这样做: NSMutableArray *ballAnimFrames = [NSMutableArray array]; for(int i = 1; i <= 11; ++i) { [ballAnimFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName: [NSString stringWithFormat:@

精灵动画问题

使用这个似乎适用于其他人的示例:

所以我这样做:

NSMutableArray *ballAnimFrames = [NSMutableArray array];

for(int i = 1; i <= 11; ++i)
{
[ballAnimFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache]     
  spriteFrameByName: [NSString stringWithFormat:@"discoball1200x2008c16-%d.png", i]]];
}

CCAnimation *ballAnim = [CCAnimation
                         animationWithSpriteFrames:ballAnimFrames delay:0.1f];

discoBallSprite = [CCSprite spriteWithImageNamed:@"discoball1200x2008c16-1.png"];

discoBallSprite.position  = ccp(upper1Body.position.x,upper1Body.position.y-200);

CCActionAnimate *animationAction = [CCActionAnimate actionWithAnimation:ballAnim];
CCActionRepeatForever *repeatingAnimation = [CCActionRepeatForever actionWithAction:animationAction];
discoBallSprite.scaleX = 0.25;
discoBallSprite.scaleY = 0.25;

[discoBallSprite runAction:repeatingAnimation];

[self addChild:discoBallSprite z:10];
NSMutableArray*ballAnimFrames=[NSMutableArray];

对于(inti=1;i制作一张精灵表,将其添加到int中

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"YourAnim.plist"];
现在在动画代码中

[ballAnimFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName: [YourAnim.png", i]]];
当你制作一张精灵图纸时,它会制作两件东西,1)带有精灵的png和2)带有坐标的plist

如果您决定使用我告诉过您的程序,请确保将其设置为cocos2d查看代码

现在Cocos2dV3的更改如下。

在链接代码中有
CCAnimation
在V3中被
CCActionAnimate
替换,并且
CCRepeatForever
在V3中被
CCActionRepeatForever
替换

另外,请检查.plist图像可能是10,尽管它在条件中得到了11图像。所以在数组中插入图像可能是您的问题

替换并尝试

for(int i = 1; i < 11; ++i)
{
 // Code
}
for(int i=1;i<11;++i)
{
//代码
}

更改它可以正常工作。

我刚刚在它填充数组之前添加了一个NSLog:
NSLog(@“discoball1200x2008c16-%d.png:,1)和调试吐出“discoball1200x2008c16-1.png”,这完全是我的第一个图像的文件名。这样做:
[ballAnimFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache]spriteFrameByName:[nsstringwithformat:@“discoball1200x2008c16-%d.png”,1]]但仍然得到相同的错误,即insertObject为零?!?!?!在尝试填充有问题的数组之前,我尝试了在游戏的另一部分加载的图像(即,图像在游戏中显示良好)。在游戏的前半部分,图像显示得很好,但当我尝试将其放入数组时,图像声称为零。这似乎表明实际数组为零,但它的初始化方式看起来很好,是吗?是否将精灵表添加到场景中?我认为我不需要。正如我在评论中提到的那样,我尝试了各种各样的事情,但这似乎不太可能成为问题所在。我的假设完全错了吗?这也可以帮助你