Проблемы со спрайтом Cocos2d

#iphone #objective-c #xcode #cocos2d-iphone

#iPhone #objective-c #xcode #cocos2d-iphone

Вопрос:

Что-то странное происходит с моей сценой «меню», ни в одной другой сцене в моем приложении нет этой проблемы.

Спрайты из файлов не отображаются (только для этой сцены) по какой-то странной причине, я поместил их в таблицу спрайтов и добавил в кэш текстур, чтобы исправить это.

Однако проблемы продолжаются, и теперь CCLabelBMFonts выдает ошибку неправильного доступа при добавлении в сцену (опять же, только для этой сцены). Ошибка в строке:

 glDrawElements(GL_TRIANGLES, (GLsizei) n*6, GL_UNSIGNED_SHORT, (GLvoid*) (start*6*sizeof(indices_[0])) );
  

Я не уверен, что делает эту сцену особенной, возможно, это то, как она загружена (это единственная, загруженная в начале):

 - (void)loadScenes 
{

    EAGLContext *k_context = [[[EAGLContext alloc]
                               initWithAPI:kEAGLRenderingAPIOpenGLES1
                               sharegroup:[[[[CCDirector sharedDirector] openGLView] context] sharegroup]] autorelease];    
    [EAGLContext setCurrentContext:k_context];
    menuScene = [[MenuScene alloc] init];
}
  

Есть идеи?

Комментарии:

1. Зачем вы создаете EAGLContext? Похоже, вы используете Cocos2D очень нестандартным способом, что может объяснить проблемы, с которыми вы сталкиваетесь.

2. Я думал, что эта часть была просто связана с загрузкой сцен. Я могу удалить это, и ничего не изменится.

3. Каков стандартный способ загрузки сцен в предварительный загрузчик?

4. Взгляните на шаблоны Cocos2D или ознакомьтесь с руководством Cocos2D, подобным этому: raywenderlich.com/352 /…

5. Можете ли вы показать еще немного кода о том, как вы создаете спрайты и CCLabelBMFonts, и как вы добавляете их в свой слой?