精通Cocos2d-x游戏开发(基础卷)
上QQ阅读APP看书,第一时间看更新

3.8 addChild失败

其实该问题是一个陈年老BUG了,在这里提出来是因为其比较有意思,当时笔者曾试了一下将两个节点互为父子节点(死循环直到栈空间溢出),或者将一个节点add到两个节点上,则会有如图3-3所示的栈溢出。而现在的版本已经修正该错误,一个节点被限定为只能有一个父节点,否则会触发断言。

图3-3 栈溢出

所谓内存溢出,是指内存不足,可用内存小于程序运行所需的内存。

此时查看堆栈会发现堆栈几乎被onEnter函数的调用填满了,嵌套了一层又一层的onEnter函数调用。A调用了B的onEnter方法,B又调A的onEnter方法,反复循环。这个问题读者了解即可。