gpt4 book ai didi

ios - CC Sprite : setTexture doesn't work when the sprite is rendered using a CCSpriteBatchNode

转载 作者:行者123 更新时间:2023-11-29 11:08:57 25 4
gpt4 key购买 nike

这是我收到的错误:

* 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“CCSprite:setTexture 在使用 CCSpriteBatchNode 渲染 Sprite 时不起作用”

当我尝试运行动画时。

这是我创作的动画:

_tokenAnimation = [[CCAnimation alloc] init];
int frameCount = 12;
for (int i = 1; i <= frameCount; i++)
{
CCSpriteFrame *frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"Token Ball 000%d.png", i]];
[_tokenAnimation addFrame:frame delay:0.1];
}

这是我调用的动画 - 以前没见过吗?

GameObject *creditPickup = [_creditPickups nextSprite];

creditPickup.position = ccp(_creditPosition.x, _creditPosition.y);
[creditPickup revive];

[creditPickup runAction:[CCRepeatForever actionWithAction:[CCAnimate actionWithAnimation:_tokenAnimation restoreOriginalFrame:NO]]];
[creditPickup runAction: [CCSequence actions:
[CCMoveBy actionWithDuration:5.0 position:ccp(-_winSize.width*1.5, 0)],
[CCCallFuncN actionWithTarget:self selector:@selector(invisNode:)], nil]];

我听说 CCSpriteBatchNode 不好?如果是这样,我怎样才能改变我的 spritesheet 的阅读??

我还有什么地方做错了吗?

最佳答案

你的问题就在这里:

CCSprite: setTexture doesn't work when the sprite is rendered using a CCSpriteBatchNode'

这意味着作为子级添加到 CCSpriteBatchNode 的任何 CCSprite 都不能运行 setTexture 方法。原因是它们都必须使用与其父 CCSpriteBatchNode 相同的纹理。所以 cocos2d 在 Sprite 批处理的 Sprite 上禁用该方法。

在您的情况下,很可能动画的至少一个 Sprite 帧不在其子 Sprite 播放该动画的 CCSpriteBatchNode 使用的纹理中。

I hear something about CCSpriteBatchNode's being bad?

是的,这很糟糕。太糟糕了,它会进行月球漫步。 :)

关于ios - CC Sprite : setTexture doesn't work when the sprite is rendered using a CCSpriteBatchNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12390007/

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