首页 > 代码库 > cocos2d-x API风格

cocos2d-x API风格

1、在Cocos2d-x引擎中,除了单例模式,每一个cocos2d类都有自己的static Class* Class::create(...)方法。极力推荐这一方法。代码样本:

Sprite* monster = Sprite::create("Monster.png");
monster->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
this->addChild(monster);

2、doSomething()
这是最常见的函数名,在Cocos2d-x/-html5引擎中处处都有应用到。第一个字是一个动词,第二个字是一个名词。比如:replaceScene(CCScene*) 和 getTexture()。

3、doWithResource()
它是doSomething()方法的变体。在initWithTexture(CCTexture*) 和 initWithFilename(const std::string&)中,你经常可以看见这一函数名。

4、onEventCallback()
当你看到类似void onEnter()的函数名时,onAction类型表明这是一个回调函数。当引发一定条件时,其他类将调用这一方法。

5、在Cocos2d-x引擎中,如果你没有发现create(),只发现了getInstance()方法,它就属于单例模式类。比如,TextureCache::getInstance()。单例类对应的析构方式是destroyInstance()。

6、Cocos2d-x引擎中使用了许多getter和setters改变属性的值。这通常会影响到对象的行为。比如 _sprite->setPosition(ccp(0,0)) 会将精灵移动到左下角。根据性能优化,在此返回CCSize引用,而不是构建另一个CCSize。当改变这一CCSize&时,该对象的内部成员变量将会受到影响,所以这一CCSize&属于常量。

如果属性为“只读”,将不会有setProperty(type)方法;
如果属性为一个bool值,将会有setProperty(bool)及 isProperty()方法。 比如:Sprite::isDirty()和Sprite::setDirty(bool bDirty)。
如果属性不是一个bool值,将会有 setProperty(type) 和 getProperty() 方法。比如: void Sprite::setTexture(Texture2D*) 和 Texture2D* CCSprite::getTexture()。