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

3.4 忘记调用父类的虚函数

这是一个很经典,很容易犯的错误,当我第一次碰到这个错误的时候,浪费了很多时间,因此希望能帮大家节省一些时间。如果你继承了某个Cocos2d-x的类,又重写了它的init或者onEnter函数,那么一不小心就可能出现一些比较奇怪的问题,例如,对这个对象施加一个动作,而这个对象没有任何反应,那么首先你会从这个动作上来找问题,而很难想到是因为没有调用到父类的函数。

在很多情况下都需要用到继承、重写虚函数,当重写虚函数的时候,先看一下父类的这个虚函数做了什么。如果这些操作是必须的,就在函数中对父类的虚函数进行调用,如CGameObject继承了Sprite并重写了Sprite的onEnter。

void CGameObject::onEnter()
{
    //切记回调父类
    Sprite::onEnter();
   scheduleUpdate();
}