Cocos2d-x API风格说明

3 篇文章 0 订阅
2 篇文章 0 订阅

【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()。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值