Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 未加载数组-“;objectAtIndex()中的索引超出范围;_C++_Cocos2d X - Fatal编程技术网

C++ 未加载数组-“;objectAtIndex()中的索引超出范围;

C++ 未加载数组-“;objectAtIndex()中的索引超出范围;,c++,cocos2d-x,C++,Cocos2d X,我是Cocos2d-x新手,我正在使用数组在图层上保存角色精灵列表 characterArr = CCArray::createWithCapacity(NUMBER_CHARACTERS/NUMBER_CHARACTERS_PER_SCENE); for (int i = 1; i <= NUMBER_CHARACTERS/NUMBER_CHARACTERS_PER_SCENE; ++i) { CCLayer* characterLayer = CCLayer::c

我是Cocos2d-x新手,我正在使用数组在图层上保存角色精灵列表

   characterArr = CCArray::createWithCapacity(NUMBER_CHARACTERS/NUMBER_CHARACTERS_PER_SCENE);
  for (int i = 1; i <= NUMBER_CHARACTERS/NUMBER_CHARACTERS_PER_SCENE; ++i)
  {
    CCLayer* characterLayer = CCLayer::create();
    for (int j = 1; j <= NUMBER_CHARACTERS_PER_SCENE; ++j)
    {
      int characterID = j + NUMBER_CHARACTERS_PER_SCENE*(i - 1);
      CCString* characterName = (CCString::createWithFormat("ChooseCharacterScene/c%i.png", characterID));
      CCSprite* character = CCSprite::create(characterName->getCString());

      CCMenuItemSprite* characterItem = CCMenuItemSprite::create(character,
                                                                 character,
                                                                 this,
                                                                 menu_selector(ChooseCharacterScene::CharacterTouched));enter code here`
      characterItem->setTag(characterID);
      CCMenu* menu = CCMenu::create(characterItem, NULL);
      characterLayer->addChild(menu, GR_FOREGROUND);
    characterArr->addObject(characterLayer);

我发现这个错误的原因是CCArray是一个自动释放对象。此处的参考有类似错误:

int layerIndex = characterTouchedID/NUMBER_CHARACTERS_PER_SCENE;
    if (characterTouchedID % NUMBER_CHARACTERS_PER_SCENE == 0) {
      layerIndex--;
    }
    ((CCLayer* )characterArr->objectAtIndex(layerIndex))->addChild(character, GR_MIDDLEGROUND);