我想知道在我继承CCLayer类中重载init方法为什么要先调用父类的init函数
bool HelloWorld::init()
{
bool bRet = false;
do
{
//////////////////////////////////////////////////////////////////////////
// super init first
//////////////////////////////////////////////////////////////////////////
CC_BREAK_IF(! CCLayer::init());
bool bRet = true;
}while(0);
}
这是官方给的例子,CCLayer::init()中只是把 m_bTouchEnabled = false;
m_bAccelerometerEnabled = false;设成false,我感觉毫无意义,因为init是layer初始化才会调用,而且只会调用第一次,在第一次调用的时候这两个参数肯定是false的,这样做什么意义呢?既然是官方给的例句肯定有其道理,谁能告诉我一下
cocos2d-x init重载
答案:2 悬赏:40 手机版
解决时间 2021-02-13 18:26
- 提问者网友:山高云阔
- 2021-02-13 03:09
最佳答案
- 五星知识达人网友:患得患失的劫
- 2021-02-13 04:07
我记得不只是只有两句赋值吧,按照cocos2d-x节点树的思想,layer类对象,也是节点类对象,在layer类的init中应该有父类init()的调用的,至少应该让父节点知道下面多了个子节点的。
我应该没记错,你再看下init()中有没有调用父类的init()
我应该没记错,你再看下init()中有没有调用父类的init()
全部回答
- 1楼网友:你哪知我潦倒为你
- 2021-02-13 04:50
sprite *lsprite1 = ...;
sprite *lsprite2 = sprite::createwithspriteframe(lsprite1->getspriteframe());
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯