溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

cocos2dx[3.2](4) ——淺析CCDeprecated.h

發(fā)布時間:2020-06-11 04:27:39 來源:網(wǎng)絡 閱讀:3328 作者:shahdza 欄目:開發(fā)技術(shù)

【嘮叨】

    CCDeprecated.h中存放的都是2.x將要被拋棄的命名規(guī)范,主要包含類名、枚舉類型。

    雖然說2.x的這些命名規(guī)范被CCDeprecated.h保留了。但是為了徹底學習3.x的新特性,就必須要盡量不要使用2.x的命名規(guī)范。

    有些變更其實已經(jīng)在:cocos2dx[3.x](3)——大巨變3.x 中做了詳細的說明了。




【CCDeprecated.h】


1、主要的變更有以下幾個方面

    (1)去掉C++類的 "CC" 前綴

    (2)去掉全局函數(shù)及常量的 "cc" 前綴,均變?yōu)?相應類 中的靜態(tài)成員函數(shù)及常量。

    (3)去掉坐標運算的函數(shù) "ccp" 前綴 ,均變?yōu)?Vec2類 中的靜態(tài)成員函數(shù)及常量。

    (4)去掉繪圖原語的 "ccDraw" 前綴  ,使用 DrawPrimitives 命名空間。

    (5)去掉OpenGL原語的 "ccGL" 前綴  ,使用 GL 命名空間。

    (6)以 "k" 開頭的常量和枚舉量,現(xiàn)在均由強枚舉類型替代。

    (7)其他改動

    這些改動的詳細說明,請參照:cocos2dx[3.x](3)——大巨變3.x


2、一些特殊的改動


  2.1、類名替代

    > Clonable 替代 CCCopying

        CCCopying已經(jīng)永久的被遺棄了,沒有被保留下來。

    > Ref 替代 Object

        雖然CCObject被保留了(typedef Ref Object),但是以后就不要再用了,使用 Ref 吧!

        Object命名也即將被遺棄。

    > Vec2 替代 Point

        其中:Vec2代表了2D坐標系,Vec3則是代表了3D坐標系。

        Point命名也即將被遺棄。

    > GLProgramCache 替代 ShaderCache

        其中著色器類為GLProgram

        ShaderCache命名也即將被遺棄。

    > GLView 替代 CCEGLView


  2.2、整合

    > 對 Node 進行了整合

        typedef Node CCNode;

        typedef Node CCNodeRGBA;

        typedef Node CCRGBAProtocol;

        可見,在3.x中已經(jīng)將CCNodeRGBA、CCRGBAProtocol兩個類整合到了Node類中。

        即:在Node類中增加了顏色、透明度的控制:setColor(Color3B&)、setOpacity()。

    > 對 Layer 進行了整合

        typedef Layer CCLayer;

        typedef Layer CCLayerRGBA;

        可見,在3.x中已經(jīng)將CCLayerRGBA類整合到了Layer類中。

        即:在Layer類中增加了顏色、透明度的控制:setColor(Color3B&)、setOpacity()。


  2.3、強枚舉類型替代 "k"

    以下列舉一些枚舉類型的變更,更多詳細的變更,請自己參考 CCDeprecated.h 文件。

    當然 "k" 開頭的枚舉變量命名也即將被遺棄。

//ccDirectorProjection

typedef Director::Projection   ccDirectorProjection;

kCCDirectorProjection2D      = Director::Projection::_2D;

kCCDirectorProjection3D      = Director::Projection::_3D;

kCCDirectorProjectionCustom  = Director::Projection::CUSTOM;

kCCDirectorProjectionDefault = Director::Projection::DEFAULT;


//CCVerticalTextAlignment

typedef TextVAlignment           CCVerticalTextAlignment;

kCCVerticalTextAlignmentTop    = TextVAlignment::TOP;

kCCVerticalTextAlignmentCenter = TextVAlignment::CENTER;

kCCVerticalTextAlignmentBottom = TextVAlignment::BOTTOM;


//CCTextAlignment

typedef TextHAlignment   CCTextAlignment;

kCCTextAlignmentLeft   = TextHAlignment::LEFT;

kCCTextAlignmentCenter = TextHAlignment::CENTER;

kCCTextAlignmentRight  = TextHAlignment::RIGHT;


//ProgressTimerType

typedef ProgressTimer::Type  ProgressTimerType;

kCCProgressTimerTypeRadial = ProgressTimer::Type::RADIAL;

kCCProgressTimerTypeBar    = ProgressTimer::Type::BAR;


//ParticleSystem

ParticleSystem::Mode 

kCCParticleModeGravity = ParticleSystem::Mode::GRAVITY;

kCCParticleModeRadius  = ParticleSystem::Mode::RADIUS;


ParticleSystem::PositionType

kCCPositionTypeFree     =  ParticleSystem::PositionType::FREE;

kCCPositionTypeRelative =  ParticleSystem::PositionType::RELATIVE;

kCCPositionTypeGrouped  =  ParticleSystem::PositionType::GROUPED;


//TransitionScene

TransitionScene::Orientation

kCCTransitionOrientationLeftOver  = TransitionScene::Orientation::LEFT_OVER;

kCCTransitionOrientationRightOver = TransitionScene::Orientation::RIGHT_OVER;

kCCTransitionOrientationUpOver    = TransitionScene::Orientation::UP_OVER;

kCCTransitionOrientationDownOver  = TransitionScene::Orientation::DOWN_OVER;


//ResolutionPolicy

ResolutionPolicy

kResolutionExactFit    = ResolutionPolicy::EXACT_FIT;

kResolutionNoBorder    = ResolutionPolicy::NO_BORDER;

kResolutionShowAll     = ResolutionPolicy::SHOW_ALL;

kResolutionFixedHeight = ResolutionPolicy::FIXED_HEIGHT;

kResolutionFixedWidth  = ResolutionPolicy::FIXED_WIDTH;

kResolutionUnKnown     = ResolutionPolicy::UNKNOWN;


  2.4、其他被遺棄的類

    這些類的類名為了防止重名,所以都在前面加上了 "__" 前綴。

typedef __NotificationCenter CCNotificationCenter;

typedef __NotificationCenter NotificationCenter;

typedef __CCCallFuncND       CCCallFuncND;

typedef __CCCallFuncO        CCCallFuncO;



typedef __RGBAProtocol RGBAProtocol;

typedef __NodeRGBA     NodeRGBA;

typedef __LayerRGBA    LayerRGBA;



//將被Map、Vector替代

typedef __Set         CCSet;

typedef __Set         Set;

typedef __SetIterator CCSetIterator;

typedef __SetIterator SetIterator;

typedef __Array       CCArray;

typedef __Array       Array;

typedef __Dictionary  Dictionary;

typedef __Dictionary  CCDictionary;



//將被Value替代

typedef __Double  Double;

typedef __Double  CCDouble;

typedef __Float   Float;

typedef __Float   CCFloat;

typedef __Integer Integer;

typedef __Integer CCInteger;

typedef __Bool    Bool;

typedef __Bool    CCBool;

typedef __String  CCString;

typedef __String  String;



向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI