0
bool GameOverLayer::init()
{
    if (CCLayerColor::initWithColor(ccc4(255, 255, 255, 255))) {
        return true;
    }
    else
    {
        return false;
    }
}

initWithColor 函数不是静态函数,为什么我可以用 cclayercolor 调用它?

define initWithColor function as below code :
bool CCLayerColor::initWithColor(const ccColor4B& color)
{
   CCSize s = CCDirector::sharedDirector()->getWinSize();
   this->initWithColor(color, s.width, s.height);
   return true;
}
4

1 回答 1

1

GameOverLayer 继承自 CCLayerColor 并且 initWithColor 函数是公共且非静态的,因此在代码中您可以使用以下语句:

CCLayerColor::initWithColor(ccc4(255,255,255,255));

这意味着从选定的父级调用继承的函数。
如果您不喜欢这种类型的呼叫,您可以使用:

this->initWithColor(ccc4(255,255,255,255));

如果您想了解更多关于这种编程类型的信息,请阅读更多关于继承和多重继承的信息。你可以从这里这里开始

于 2013-08-05T06:00:02.697 回答