#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, и как вы добавляете их в свой слой?