• cocos2dx[3.2](3) 浅析CCDeprecated.h


        CCDeprecated.h中存放的都是2.x将要被抛弃的命名规范,主要包含类名、枚举类型。

        虽然说2.x的这些命名规范被CCDeprecated.h保留了。但是为了彻底学习3.x的新特性,就必须要尽量不要使用2.x的命名规范。

    【CCDeprecated.h】

    1、主要的变更有以下几个方面

        (1)去掉C++类的 "CC" 前缀

        (2)去掉全局函数及常量的 "cc" 前缀,均变为 相应类 中的静态成员函数及常量。

        (3)去掉坐标运算的函数 "ccp" 前缀 ,均变为 Vec2类 中的静态成员函数及常量。

        (4)去掉绘图原语的 "ccDraw" 前缀  ,使用 DrawPrimitives 命名空间。

        (5)去掉OpenGL原语的 "ccGL" 前缀  ,使用 GL 命名空间。

        (6)以 "k" 开头的常量和枚举量,现在均由强枚举类型替代。

        (7)其他改动

        这些改动的详细说明,请参照:cocos2dx[3.2](2) 3.x巨变

    2、一些特殊的改动

      2.1、类名替代

        > Clonable 替代 CCCopying

            CCCopying已经永久的被遗弃了,没有被保留下来。

        > 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中已经将CCNodeRGBA、CCRGBAProtocol两个类整合到了Node类中。

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

        > 对 Layer 进行了整合

            typedef Layer CCLayer;

            typedef Layer CCLayerRGBA;

            可见,在3.x中已经将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;
    
  • 相关阅读:
    [JLOI2011] 飞行路线
    高精度运算模板
    Dijkstra算法模板
    [SDOI2010] 外星千足虫
    [SDOI2006] 线性方程组
    [CTSC2014] 企鹅QQ
    模板三连击:树状数组+线段树+主席树
    [ZJOI2008] 树的统计
    [国家集训队] 礼物
    [洛谷P4720] [模板] 扩展卢卡斯
  • 原文地址:https://www.cnblogs.com/lmx282110xxx/p/10798698.html
Copyright © 2020-2023  润新知