cocos2dx[3.x](4) ——浅析CCDeprecated.h

【唠叨】

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

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

有些变更其实已经在:cocos2dx[3.x](3)——大巨变3.x 中做了详细的说明了。



【CCDeprecated.h】

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

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

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

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

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

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

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

(7)其他改动

这些改动的详细说明,请参照:cocos2dx[3.x](3)——大巨变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;

时间: 2024-11-07 18:13:55

cocos2dx[3.x](4) ——浅析CCDeprecated.h的相关文章

cocos2dx[3.x](2)——浅析cocos2dx3.2引擎目录

[唠叨] 3.x的引擎目录与2.x的引擎目录的差别是非常大的.学过2.x的朋友应该会发现2.x的引擎目录有点凌乱.而3.x主要是将引擎的各个文件按照用途进行了分类,使得引擎目录结构更加清晰了. [窥探3.x引擎目录] 要想学好cocos2dx,首先就需要对引擎目录下的各个文件有所了解.接下来,就让我们先来分析一下cocos2dx3.2引擎的文件目录吧. 从目录中我们主要了解一下以下几个文件: 文件名 说明 build 官方编译的项目解决方案. 集中放在这个文件中,如cocos2d-win32.v

cocos2dx基础篇(4)——浅析cocos2dx引擎目录

通过前面几节的学习,相信大家都已经配置好了VS+cocos2dx2.2.3的环境,并且成功运行了官方的案例HelloWorld. 一.窥探文件目录 要想学好cocos2dx,首先就需要对引擎目录下的各个文件有所了解.接下来,就让我们先来分析一下cocos2dx2.2.3引擎的文件目录吧. 从目录中我们主要了解一下一下几个文件: cocos2dx:cocos2d-x引擎的核心部分,存放了引擎的大部分源文件. CocosDenshion:声音模块相关源文件. Debug.win32:在Windows

cocos2dx基础篇(5)——浅析几个常见类

目录 入口类main.cpp 主要控制类AppDelegate.cpp 节点类CCNode 导演类CCDirector 场景类CCScene 层次类CCLayer 精灵类CCSprite 大小类CCSize 坐标CCPoint 矩形类CCRect 数组类CCArray 入口类main.cpp 这是应用程序的入口类,用于创建cocos2dx的AppDelegate实例.窗口大小.以及运行程序. 主要代码如下:     // create the application instance     A

cocos2dx 3.1.1 用tinyxml2.h解释xml (C++)

cocos2dx 3.1.1怎样用tinyxml2.h解释xml? (C++) cocos2dx已经自带了tinyxml2用于xml的解释,很早之前从2.x的版本开始已经无需再特地去下载. 不过,tinyxm2关于3.x引擎的文档比较少,特此来贡献一个! 首先加入头文件: #include "cocos-ext.h" #include "tinyxml2/tinyxml2.h" using namespace tinyxml2; using namespace st

cocos2d-x调用android内嵌浏览器打开网页

cocos2d-x调用android内嵌浏览器打开网页,可以从入口传入网址,C++调用android 的api即可实现.方法也很简单 1. 修改"cocos2dx\platform\win32"下的CCApplication.h和CCApplication.cpp,添加函数 头文件声明 void openURL(const char* pszUrl); cpp文件实现: void CCApplication::openURL(const char* pszUrl) { ShellExe

Xcode 添加 Cocos2d-x Scene 模板

用Cocos2d-x开发游戏的时候,XCode默认生成的cpp类基本就是一个空文件,每次都要重复实现Cocos2d-x的基本代码,很麻烦.之前是修改HelloWorld文件,然后新建的文件就直接copy HelloWorld内容,但这样感觉还是挺麻烦的. 于是想办法给Xcode添加Cocos2d-x类模板.下面就是新建文件的时候,多了一个 2dx Scene 的类模板. 步骤: 1.打开Xcode类模板目录地址:/Applications/Xcode.app/Contents/Developer

cocos2dx[2.x]学习笔记

说明: 基于cocos2dx2.2.3,使用C++语言,在Visual Studio 2010进行开发的. 致谢: 在这里特别要感谢网络上给予我帮助的大牛,是他们的博客提供了很多cocos2dx的学习资料,才促使我的成长.以下的相关知识点,大多也是借鉴了他们的博客. 另外强烈建议大家去学习官方给出的TestCpp项目,里面涵盖了使用cocos2dx的精华知识部分. [cocos2dx 2.x] cocos2dx基础篇(1) --Cocos2D-X 和 VS2010 环境配置 cocos2dx基础

cocos2dx 环境搭建 win7 +vs2012+ cocos2dx-2.1.4

转自:http://my.eoe.cn/swer03160828/archive/20067.html 1) 如果在win32 下面编写的cocos2dx 的代码其文件 .cpp,.h 的文件,基本上都其他的平台上面可以直接把文件编辑是没有问题的! 2) 大多数的学习游戏开的人,使用的很多都是 win32 系统,但是网上很多的教程在ios上面的操作! 本人也是使用的就是win32 系统!比较符合android 开始的鞋童们!呵呵呵 3)我在接下文章总结出自己在项目中遇到的问题,已经解决的办法!

关于Cocos2d-x头文件的引用

cocos2d-x 3.10的G:\cocoshome\Cocos2d-x\cocos2d-x-3.10\extensions\GUI\CCControlExtension\CCScale9Sprite.h已经不见了,取代的是G:\cocoshome\Cocos2d-x\cocos2d-x-3.10\cocos\ui\UIScale9Sprite.h 还有就是#include "..\extensions/GUI/CCControlExtension/CCControlSwitch.h"