About static contructor API changes in cocos2d-...

大家应该看到新版本了,但不知有没有注意到这个改变,我在这简单翻译下,由于e文水平不咋样,不足还请指正:

之前,我们用 OBJ-C 风格的API来创建对象,例如创建一个精灵:

CCSprite* pSprite = CCSprite::spriteWithFile ("filename.png");

但是这种风格对于C++语言来说是不友好的!因此我们给绝大多数类添加了一个静态生成器
。现在,创建一个对象,你只需要记住一个名为create的生成器。
像'CCSprite::create','CCNode::create','CCMoveTo::create','CCCallfunc::create'等等.
例如:

CCSprite *spr = CCSprite::create("Images/grossini.png");
    spr->setPosition(ccp(100, 100));
    addChild(spr);
    CCMoveBy* act1 = CCMoveBy::create(0.5, ccp(100, 0));
    CCMoveBy* act2 = (CCMoveBy*)act1->reverse();
    CCFiniteTimeAction* act3 = CCSequence::create(act1, act2, NULL);
    CCRepeat* act4 = CCRepeat::create(act3, 2);
    spr->runAction(act4);

所有用create创建的对象是autorelease的,除非你调用了retain方法,否则它是不需要手动release的。
虽然我们为绝大多数类添加了create API,但我们也保留了 obj-c 风格的API;但我们标记了它们为@deprecated。
并且在这些旧的API开头创建了一个名为CC_DEPRECATED_ATTRIBUTE的宏,他们在你用这些旧的API创建对象时发出警告。
假如你正在使用旧的API来创建对象,我们强烈建议你更换成使用新的API,因为旧的API迟早会被丢弃。

你可能感兴趣的:(cocos2d-x)