天天看點

cocos 2.x 與 3.x 的差別

1.命名空間去掉了Object-c風格的字首“CC”,比如CCSprite更名為Sprite等,一些全局方法也被加入到相應的命名空間内。比如與繪制幾何單元相關的方法加入到DrawPrimitives命名空間内。與OpenGL ES相關的指令則使用GL命名空間。

2.x 3.x
CCSprite Sprite
ccDrawPoint() DrawPrimitives:drawPoint()
ccGLBlendFunc() GL::blendFunc()

  2.使用clone()代替copy() 方法, copy() 方法用于深度複制一個對象,比如Action 廣泛使用clone方法來避免對原對象的修改,也可以利用一些模版對象來動态的構造新的對象,以達到類似反射的效果。 且clone()方法直接傳回一個加入自動回收池的對象,不需要調用者手動處理。

2.x 3.x
copy() clone()

  3.TextureCache, Dispatcher等對象不再是全局的單例,而是需要通過Director來擷取執行個體。   4.使用更明确的get字首來擷取屬性方法。

2.x 3.x
node->boundingBox node->getBoundingBox()
sprite->nodetoParentTransform sprite->getNodeToParentTransform()

  5.所有的屬性方法使用const 來限制對自身屬性的修改

2.x 3.x
visual float getScale(); visual float getScale() const;

6.對于POD類型,使用引用參數代替指針傳遞,比如TextParams,Points等,這些對象将被配置設定到棧中,有助于記憶體管理。 // 2.x void setTexParameters(ccTexParams* texParams);   // 3.x void setTexParameters(const ccTexParams& texParams);  

轉載于:https://www.cnblogs.com/SkyflyBird/p/9832522.html

繼續閱讀