到目前为止,我可以追踪我在 cocos2dx 应用程序中遇到的每一个错误/崩溃,但现在我觉得自己很愚蠢。我有一个 CCSprite 指针数组,我想做的是在玩家有 x 分数时从缓存中更改它的显示帧。
所有精灵帧都是从 plist 文件中读取的,并且精灵在那里并且正在工作,因为在尝试切换到新帧之前我可以毫无问题地看到它。“background.png”是一个有效的精灵帧名称,因为我用它来创建实际的精灵。
这条线工作正常(或至少它似乎工作)
CCSpriteFrame* frame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("background.png");
问题在于这一行:
for (int c = 0; c < sizeof(mBackground) / sizeof(CCSprite*); c++){
mBackground[c]->setDisplayFrame(frame);
}
这个也崩溃了:
CCSpriteFrame* frame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("background.png");
mBackground[0]->setDisplayFrame(frame);
我的想法用完了,我真的很感激任何帮助。