Cocos2d-x API 风格
两阶段构造器及静态create()函数Cocos采用两阶段构造器是因为C++的构造函数没有返回值,我们想要知道一个对象是否正确构造,就添加一个create()函数,使用该函数来进行构造调用。 auto layer = HelloWorld::create();
而不是直接去调用HelloWorld的构造函数。 至于这个create函数怎么写,Cocos已经写好一个CREATE_FUNC宏示范: #define CREATE_FUNC(__TYPE__) static __TYPE__* create() { __TYPE__ *pRet = new __TYPE__(); if (pRet && pRet->init()) { pRet->autorelease(); return pRet; } else { delete pRet; pRet = NULL; return NULL; } }
该宏的功能是调用默认构造函数,将其加入自动内存管理,并调用init函数。 示例: public:
CREATE_FUNC(HelloWorld);
在init函数中,我们才进行对象的逻辑代码编写。 bool HelloWorld::init()
{
if (!Layer::init())
{
return false;
}
return true;
}
除了单例模式,每一个cocos2d类都有自己的static CCClass* CCClass::create(…)方法。 doSomething()这是最常见的函数名,在Cocos2d-x/-html5引擎中处处都有应用到。第一个字是一个动词,第二个字是一个名词。比如: doWithResource()它是doSomething()方法的变体。在 onEventCallback()当你看到类似 getInstance()在Cocos2d-x引擎中,如果你没有发现 属性因为在C++ 和 C++11中没有”property” (“属性”)这个概念,所以我们在Cocos2d-x引擎中使用了许多getter和setters。 setProperty()改变属性的值。这通常会影响到对象的行为。比如 _sprite->setPosition(ccp(0,0)) 会将精灵移动到左下角。 getProperty()与 isProperty()只用于boolean类型的属性,和 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |