gpt4 book ai didi

iphone - 我的spriteSheet动画使我的应用崩溃

转载 作者:行者123 更新时间:2023-12-03 16:01:52 24 4
gpt4 key购买 nike

所以我每秒创建一个Sprite,但是现在我想用spriteSheetAnimation替换这个Sprite。但是当我运行此代码时,我的应用崩溃了:

- (void)spawnCat {
CCSpriteBatchNode *spriteSheet2 = [CCSpriteBatchNode batchNodeWithFile:@"AnimBulle.png"];
[self addChild:spriteSheet2];

// Load up the frames of our animation
NSMutableArray *walkAnimFrames = [NSMutableArray array];
for(int i = 1; i <= 8; ++i) {
[walkAnimFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"AnimBulle%d.png", i]]];
}
CCAnimation *walkAnim = [CCAnimation animationWithFrames:walkAnimFrames
delay:0.1f];
[target runAction:_walkAction];
target.tag = 1;
[_targets addObject:target];

[self addBoxBodyForSprite:target];
[spriteSheet2 addChild:target z:0 tag:1];
id actionMove = [CCMoveTo actionWithDuration:actualDuration
position:ccp(240, 160)];
id actionMoveDone = [CCCallFuncN actionWithTarget:self
selector:@selector(spriteDone:)];
[target runAction:[CCSequence actions:actionMove, actionMoveDone, nil]];
}

最佳答案

编辑:
从收到的错误类型(堆栈跟踪不足)中,您可以进行无限次递归(即最终直接或间接调用自身的方法)。 spawnCat中的代码似乎不需要这种无限递归,因此问题一定在其他地方。

你怎么称呼spawnCat?您能否在创建动画的执行方法中放置一些NSLog跟踪,以便查看是否有人不断调用自己?

原始答案:
您确定这是您的意思吗?

CCAnimation *walkAnim = [CCAnimation animationWithFrames:walkAnimFrames delay:0.1f];
[target runAction:_walkAction];

我看不到 _walkAction初始化,但是我希望您在创建动画之后通过执行以下操作来做到这一点:
CCAnimation *walkAnim = [CCAnimation animationWithFrames:walkAnimFrames delay:0.1f];
_walkAction = [CCAnimate actionWithAnimation:walkAnim];
[target runAction:_walkAction];

关于iphone - 我的spriteSheet动画使我的应用崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10294437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com