Cocos2d-x API风格说明

【1】类的实例

在cocos中类的实现本质上是通过两段构造的方法实现,第一阶段是类默认的构造函数,第二阶段是调用对象的initial方法。如下面的例子:

MyClass* obj = new MyClass;
 if (true == obj->initWithFilename("texture.png"))
 {
     // congratulations, go ahead!
 }
 else
 {
     // error process
 }

但是这样做会显得冗余,所以在2.2.3中统一做了封装,所有的类实例化都通过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()风格

比如:replaceScene(CCScene*) 和 getTexture()

dowithsomething()风格

比如:initWithTexture(CCTexture*) 和 initWithFilename(const std::string&)。

 

onenventcallback()风格

回调函数,发生特定事件的时候会调用该函数。

如:

class Layer
{
public:
    virtual void onEnter();
    virtual void onExit();
    virtual void onEnterTransitionDidFinish();
}

 

【3】特殊:单例类

在coc中存在一些单例类,获取他们要使用getinstance(),单例类对应的析构方式是destroyInstance()。在v3.0之前,单例类的构造方式是CocosClass::sharedCocosClass(),比如TextureCache::sharedTextureCache()。这个方法在v3.0中仍然可以兼容,但不保证在v3.0更后面的版本中仍然保留。

什么是单例模式?:http://baike.baidu.com/link?url=PZnVujEJGmoImf7toSFdIVD1-TPmYAyEMd87q-uuv_qEx4LmDrseO_Rw8xo2mSCG9NbBpnHh1Q5wrz6lS616MK

 【4】属性

在coc中”没有“属性的概念,取而代之的是很多set,get和is方法。

总结起来:

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

 

Cocos2d-x API风格说明,布布扣,bubuko.com

Cocos2d-x API风格说明

上一篇:Windows Server 2012 R2工作文件夹⑧:非域客户端配置工作文件夹


下一篇:System.Windows.Forms.AxHost.InvalidActiveXStateException”类型的异常在 ESRI.ArcGIS.AxControls.dll 中发生,但未在用户代码中进行处理