我已经开始玩游戏,我已经使用之前版本的iOS进行了测试,玩过数百次,在安装了iOS7并更新了xcode之后,我甚至没有发现过一次崩溃刚试过我的应用程序......现在有时会崩溃。崩溃不会发生在特定时刻或行动中,它们只是完全随机,有时会立即崩溃,有时候在2-3场比赛后,我试图做同样的事情来检查它是否特别适合但似乎不是,或至少不是这种方式明显的东西。我在游戏场景中使用精灵和蝙蝠侠。
正好在CCTextureAtlas.m文件中的这行代码(大约522)中:
glDrawElements(GL_TRIANGLES, (GLsizei) n*6, GL_UNSIGNED_SHORT, (GLvoid*) (start*6*sizeof(_indices[0])) );
因为我没有对代码进行任何更改,所以我非常怀疑这可能是我所做的事情,可能是与iOS7中影响cocos2d的变化相关的东西?我甚至不熟悉opengl,所以我很难理解发生了什么......
显然在游戏中我正在进行一些动画......
其他信息:
答案 0 :(得分:4)
每次调用ccGLBindVAO(0);
后添加glDeleteVertexArrays(1, &_VAOname);
,都会停止崩溃。
此调用有三个文件:
CCDrawNode:164
CCTextureAtlas:142
CCParticleSystemQuad:164
CCParticleSystemQuad:229
CCParticleSystemQuad:492
就像在CCTextureAtlas中那样:
#if CC_TEXTURE_ATLAS_USE_VAO
glDeleteVertexArrays(1, &_VAOname);
ccGLBindVAO(0);
#endif
我正在使用cocos2d-iphone classic 2.2。
代码在这里:https://github.com/jllust/cocos2d-x/commit/1f3c1145362c921bf5232c4ffbca4a5245042bae
我做了一个cocos2d-iphone-classic拉取请求:https://github.com/zeraien/cocos2d-iphone-classic/commit/817a9c14a3aa1d4c162071521e45e2fcce473d77