我刚刚完成了一个 cocos2d iPad 应用程序的快速原型(prototype)初稿。我没有修改CCTextureAtlas.m
文件。
我离开时应用程序运行良好 [director_ setDisplayStats:YES]
在 AppDelegate
,但如果我删除该行或替换 [director_setDisplayStats:NO]
,它在 CCTextureAtlas.m
中崩溃.-(void) drawNumberOfQuads: (NSUInteger) n fromIndex: (NSUInteger) start
在第 522 行,内容如下:glDrawElements(GL_TRIANGLES, (GLsizei) n*6, GL_UNSIGNED_SHORT, (GLvoid*) (start*6*sizeof(_indices[0])) );
供引用,[director_ setDisplayStats:YES]
位于 AppDelegate.m
的第 154 行.
应用原型(prototype)的完整源代码位于此处:
https://github.com/GameAid/Toddler-Taxonomist
对于那些可能查看代码的人来说,点击开始后,BoardLayer
是协调大部分工作和屏幕上显示内容的主要节点。
对于我的一生,我无法弄清楚我在做什么导致这成为一个问题。起初,我怀疑我使用 [[CCTextureCache sharedCache] removeUnusedTextures]
(在'BoardLayer'中)是一个问题,但现在我认为它没有任何区别。
这是出现在 Xcode 中的调用堆栈:
关于如何解决这个问题的任何想法?
最佳答案
在 BoardLayer.m
, 我用的是 [self removeAllChildrenWithCleanup:YES]
,这似乎是导致问题的原因。当我将其更改为简单的 [self removeAllChildren]
,当 [director_ setShowStats:NO]
时一切正常到位。
我不确定这种冲突的性质是什么——它似乎处于低 OpenGL 级别——但它已在我的代码中修复。
关于ios - cocos2d iPad 设置时崩溃 [_director displayStats :NO],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16137454/